Borland Database Engine (BDE) Alternative Guide
Stuck and can't upgrade from Delphi 7? Here is the unofficial "BAG"
What is the BDE?
In TurboC, Borland C++ and TurboPascal 7 for DOS and Windows 16-bits, there was no connected or unified way to connect to dBase or Paradox.
In Delphi 1, 16-bit era, data-aware controls were hard-wired to BDE DLLs. BDE stands for Borland Database Engine, a unified version of data-access introduced in Delphi 1, which, allows Delphi apps to easily use dBase, Paradox, FoxPro files. Later versions added ODBC. Delphi Enterprise allowed you to redistribute BDE-compatible database drivers for MSSQL, Sybase and Oracle.
If you use TTable in your Delphi app, you link immediately to BDE whether you liked it or not. Certain custom database, like older versions of Apollo, would overwrite the BDE public APIs and provide DLL replacement to 16-bit BDE. A sneaky and smart method to replace the BDE.
In Delphi 2, linking to data-aware controls means you link to DB.pas and linked to the BDE, requiring you to install BDE on customer's computers.
BDE alternatives would provide 32-bit BDE custom DLL replacements, same as in Delphi 1.
Instead of distributing the BDE, you distribute Apollo “BDE”, Titan “BDE” and even TurboPower FlashFiler “BDE” - custom versions of same-name DLLs in the same directory as your application.
In Delphi 3, DB.pas TDataset was decoupled from TTable, TQuery, which meant, using TDataset alternatives wouldn't cause a linkage to BDE, and not requiring to ship BDE-compatible DLLs. This led to an explosive growth of BDE alternatives.
As long as the third-party library made a TDataset component, it could be put on the IDE's palette and replace TTable and TQuery.
The BDE had unique features - maintaining global data dictionary, auto-upgrade for Paradox and dBase tables, something modern day databases sometimes trip over.
What happened to BDE?
After Delphi 7, Borland sold Quattro Pro, dBase, Paradox, StarTeam to Novell. Novell was sold to Micro Focus, Novell sold WordPerfect, Quattro Pro to Corel. dBase was sold to dBase LLC.
dBase, sold by dBase LLC, uses the same build of BDE shipped in Delphi 7.
Paradox sold by Corel, uses the same build of BDE shipped in Delphi 7.
StarTeam, CORBA sold by Micro Focus uses the same build of BDE shipped in Delphi 5.
So, who exactly has the source-code of BDE?
The latest version of dBase, Corel Paradox still ship old 15+ years old BDE.
Similar to BOLD, whose source-code was missing for nearly 10+ years, this blog suggests BDE's original source code is also ... lost.
Intended Audience
This article is for developers stuck on Delphi 7, and can’t seem to update, upgrade despite years of upgrade discounts and marketing emails from Embarcadero.
BDE Alternative Choices #1
Using custom databases offers cost-advantage. If you use MySQL or MSSQL, there's a chance database licensing would hurt or cause poor sales.
Tie - NexusDB, ElevateDB
NexusDB offers royalty-free server.
ElvateDB offers royalty-free server.
NexusDB has a single-file table option (ie all your tables stored in one file), ElevateDB offers MSSQL compatibility.
NexusDB has third-party Android, iOS connectors, TMS database support, DevArt ODBC support, DevArt Database Manager support, UpScene's database workbench support.
ElevateDB has ElevateWeb, a solid web-based solution... and only TMS supports ElevateDB.
There's DBS Accounting which supports older DBISAM, Sendero (out of business) which offered a DBISAM manager, EMS HiTech used to offer a DBISAM manager, and there's Scalabium's DBSIAM viewer.
Both of them don't handle PHP or NET well.
There's a promise of on-device Android and iOS support but that hasn't materialized yet.
Both of them handle row-level encryption.
ElevateDB is used everywhere but seldom seen.
I've consulted to businesses which have business applications which uses either NexusDB or ElevateDB, and use ODBC to connect their dashboards to each other.
2. TurboDB is a German BDE alterative with a small following.
The second contender is TurboDB. Used by several German CMSs and German ERP systems.
BDE Choices #2 - Traditional Connectors
The usual gangs - UniDac, ODAC, PyBridge for Redis. SQLDirect - for OpenText, Informix, Microolap for MySQL (aka MySQLDAC)
There's the traditional DBF and Paradox connectors - Mitec Paradox Editor, TDBF, SAP's SQL Advantage for DBase and lesser known Apollo DBase Server.
Your mileage may vary - there is scant support for Android and iOS.
BDE Choices #3 - Mobile connectors
Embarcadero's own FireDac and Zeos provides SQLite for mobile. There's Nexus Android connectors (as above). There's also Interbase for Android and iOS... and there are Firebird for Android and iOS attempts.
Not recommended
AbsoluteDB and AIDAIM are not recommended as development stopped years ago. Any updates are adding DPKs for newer versions of Delphi, adding customer supplied fixes to their codebase. This is rent seeking.
BDE removed from Delphi 12
BDE is removed in Delphi 12 and above. The last version of BDE that installs in Delphi’s tool palette and components installs in Delphi 11.3. There isn’t a BDE for Delphi 12. *Please see corrections for clarification.
Asked, if it’s necessary to upgrade from Delphi 7 to latest version of Delphi, they often quote - as in Astrix and Oblix comics - Chief Vitalstatistix: "The sky may fall on your head tomorrow, but tomorrow never comes."
What BDE alternative do you use?