What are the options for a Delphi application to migrate from BDE when using an Oracle database

We have a Delphi 5 application connecting to an Oracle 8i database.

Most logics are hosted as stored procedures in the database. We are currently using the Borland Database Engine (BDE) to connect to Oracle through the OCI 9.2 client.

This app was originally written in '96 using Delphi 1, and then upgraded to Delphi 5 in '99.

It is planned to switch to the XE client and Oracle 11g.

What are the options to simply replace BDE with something else and keep efforts 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 do not consider DBExpress, because I do not think that it will have the required performance.

Important:

  • ease of update, for example. a wizard or some other tool for converting DBE components,
  • Good performance.

I tend to devart because they have a migration tool (although it does only partial work) and they have a direct TCP option to connect to the database without the need for a client.

+7
source share
2 answers

You will need to learn about the differences between BDE and other architectures. Whether you plan to switch to dbExpress or not, you should read and study this white paper .

The dbExpress architecture is a deliberate architecture designed to eliminate critical errors not only in the lower levels of BDE, but also at its upper levels (TTable / TQuery components) and architecture. Understanding the reasons for these changes and the limitations in the BDE that they address is a key element when moving your application from the BDE to anything.

As for your opinion about performance, I like it when people use real data, rather than form opinions based on manual span, or adjectives like β€œfast” transmitted to objects without experimental support.

I personally did not use DOA, but if I were not going to use dbExpress, this would be the next evaluation for Oracle environments. however, I would not assume that dbExpress is slower without testing in my own environment.

Updated: I originally mentioned the Delphi OCI, but it turned out to be outdated and not very active. DelphiOCI project on sourceforge, works with Delphi 7 and earlier, and not in unicode delphi, and only with older (Oracle 8i and older) versions of oracle ... If this worked in my environment, I would try. Oh, and this is the GPL. Good. Not so good.

+4
source

Both ODAC and DOA (although the development of DOA is pretty outdated) will give you access to Oracle features. dbExpress and other common database access libraries usually do not allow access. If your application really only supports Oracle and does not need support of other databases, IMHO it is better to use the full-featured capabilities of Oracle. The simplicity of the port depends on how you wrote the code for the BDE component. ODAC has tools to simplify porting BDE (I never used them), while AFAIK DOA does not. DOA TOracleQuery is not a descendant of TDataset and, therefore, is not a direct replacement for TQuery, although it has less overhead and therefore has good performance, and TOracleDaset is the only component similar to a dataset. I would not use a direct ODAC TCP connection directly with Oracle without an Oracle client, but for special needs it is an unsupported (by Oracle) connection, I would prefer to use Oracle Instant Client if it is small (relatively ...) in size, at least This is a fully supported option and allows (or your customers) to open a support request with Oracle, if necessary.

+1
source

All Articles