BDE TDatabase no longer supported

171 views
Skip to first unread message

Gavin Cronje

unread,
Jul 9, 2015, 2:48:44 AM7/9/15
to woll2woll...@googlegroups.com
Hi

We are currently using Delphi 2005 with Woll2Woll components that use a BDE TDatabse component to connect to an Oracle database. We will soon be migrating to XE2 but have seen that BDE components are no longer supported with versions XE3 and up. We have a couple hundred forms that use TWW components.

What database component will need to be used for newer editions of Delphi like XE8 as the TDatabase component no longer exists to connect to an Oracle database? Or does the newer versions of Woll2Woll have its own database component that can be used as a replacement for the TDatabase component?

I have seen that there is an Interbase, DBExpress and ADO database components in XE8 but none of these are able to connect to Oracle.

Thanks.

jaco...@gmail.com

unread,
Jul 9, 2015, 12:04:37 PM7/9/15
to woll2woll...@googlegroups.com
You can still use the BDE even through XE8, but you would need to download their BDE add on as it no longer ships with Delphi. XE3 still ships with the BDE components.

If you wish to avoid the BDE now since it is deprecated, you can use FireDAC (which comes with XE6-XE8) to access databases. Also there are other 3rd party engines such as UniDAC that also give you access to other databases. The nice thing about FireDAC is that it is compiled into your application and does not require extra drivers so it works nicely in the mobile space.

-Roy

Roger Dunn

unread,
Oct 19, 2015, 6:17:09 PM10/19/15
to woll2woll.infopower
We are in a similar boat.  Instead of one application with hundreds of forms, we have over a hundred applications with probably thousands of forms all together.  Here is a summary of what we have started to do.

There is some help on Embarcadero's own web site about migrating away from BDE, but it is not as easy as they make it sound.  I've read it several times.  You'll see a little bit of hype about a tool they created called reFind which uses regular expression matching patterns to find and replace string patterns with other strings.  I learned about regular expressions on-line and also bought a tool called Regex Buddy to help me create BDE pattern strings that we use a lot.  We have decided to use FireDAC as the replacement because dbExpress just wasn't good enough.

Much of the transition to FireDAC from BDE has had to be manual.  Instead of TTables and TwwTables with filters or master/detail relationships, we have to put in TQueries.  There is no tool that I can think of, or write, which would seamlessly convert TTables to TQueries.  They have different methods and properties.  Refresh works on TTables but not on TQueries.  TTables sort using Indexes, while TQueries sort using ORDER BY statements. We make heavy use of TTable.FindKey, but have to change those to WHERE statements, or calls to the Locate function.  We also make use of TTable.Last to manually increment record numbers, but now we have to use TQueries to get SELECT MAX(IFNULL(FIELD,0)+1) statements, or re-create the tables with auto-incrementing IDs and strip out the code that used to create them.  There is too much for us to consider automating that part of the conversion process.  So we need to do it manually.

However, I have written some stuff and utilized programs that come with Delphi XE7 to faithfully convert a BDE application that uses TQueries into an application that uses TFDQueries.  It has taken a lot of research and development, but I can do it.  Currently I've converted 5 applications (2 from BDE and 3 from dbExpress).  There were several obstacles I had to overcome.  First, not all data modules are stored as Text.  Older ones are stored in Binary, so I have a small EXE that converts the form and data module .dfm's to Text.  Second, some properties of TTable have to be completely stripped, and they are multi-line tables so the grep and reFind utilities don't work with them.  The properties are FieldDefs and IndexDefs.  Yes, there are some TTables we will leave in our applications because they make great look-up components and don't contain that many records.  Third, our database allows us to separate schema names from table names with a slash, and those are used all over the place in our code.  My regular expressions search for those and replace the right slashes with periods.

I understand why Embarcadero let go of BDE, but that doesn't mean it hasn't been painless for us.  BDE had problems right away with Windows Vista and User Account Control.  Simply installing BDE, much less making it run, on any OS past Vista has been nightmarish at times.  I just didn't like that when BDE was discontinued, the only out-of-the-box replacement was dbExpress, which didn't work for us at all.  Four components to replace two components?  Requiring persistent fields?  dbExpress insisting on a value for every field, and counting an empty string the same as Null?  It was a pain to work.  FireDAC is really nice, though, but it just doesn't work the way BDE does.

"Roj"

roy....@gmail.com

unread,
Oct 19, 2015, 6:38:24 PM10/19/15
to Roger Dunn, woll2woll...@googlegroups.com
Roj,

Why can’t you just use a TFDTable to replace your TTable.? Then you can filter, have master/detail relationships, etc., just as you used to do.

-Roy
--
You received this message because you are subscribed to the Google Groups "woll2woll.infopower" group.
To unsubscribe from this group and stop receiving emails from it, send an email to woll2wollinfopo...@googlegroups.com.
Visit this group at http://groups.google.com/group/woll2wollinfopower.
To view this discussion on the web visit https://groups.google.com/d/msgid/woll2wollinfopower/a233ac24-7bc4-42d0-83b7-c09cb90a1c45%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages