We have a Delphi 5 app connecting to an Oracle 8i database.
Most logic is siting in the database as Stored Procedures. Currently we are using the Borland Database Engine (BDE) to connect to Oracle via OCI client 9.2.
This app was originally written in ’96 using Delphi 1 then upgraded to Delphi 5 in ’99.
The plan is to upgrade to XE client and Oracle 11g.
What are what the options to simply replace the BDE with something else and keep the effort to a minimum?
So far I have seen:
- AnyDAC (http://www.da-soft.com/anydac/)
- devart ODAC (http://www.devart.com/odac/)
- DOA (http://www.allroundautomations.com/)
I am not considering DBExpress as I do not believe that it will have the performance that we need.
Things that are important are:
- ease of upgrade, e.g. wizard or some other tool to convert DBE components,
- Good Performance.
I am leaning towards devart as they do have a migration tool (although it only does a partial job) and they have a direct TCP option to connect to database without the need for a client.
You will need to learn about the differences between BDE and other architectures. Whether you plan to move to dbExpress or not you should read and learn from this whitepaper.
The architecture of dbExpress is an intentional architecture, designed to address critical flaws not only in the BDE’s lowest levels, but also in its upper levels (the TTable/TQuery components) and architecture. Understanding the reasons for those changes, and the limitations in the BDE that they address, is a key element in moving your app off the BDE, to anything.
As for your contention on performance, I like to see people use real data, not form opinions based on hand-waving, or adjectives like “fast” imparted upon objects, without experimental backing.
I have not personally used DOA, but if I wasn’t going to use dbExpress, that would be the next thing I would evaluate, for Oracle-only environments. nevertheless, I wouldn’t assume that dbExpress is slower, without testing both in my own environment.
Updated: Originally I mentioned Delphi OCI, but it turns out it’s out of date, and not very active. DelphiOCI project on sourceforge, works with Delphi 7 and before, not on unicode delphi, and only with older (Oracle 8i and older) oracle versions… If this was able to work in my environment, I’d have tried it. Oh, and it’s GPL. Okay. Not so great.