I had been reading through Holgerwa's question and I've got a question.

Can there be any significant performance improvement by altering from dbExpress with other driver specific?

Are we able to use dbExpress but still use specific DB engine features?

  1. Is dependent which dbExpress driver and "other driver" to check. But a great library might be faster than the usual standard dbExpress driver. You can observe our benchmark results here. There TADQuery is AnyDAC query object. Borl TSQLQuery is Delphi TSQLQuery using standard dbExpress driver.

  2. Yes, whenever a feature is obtainable through database SQL dialect. No, if your feature is obtainable through database client API. For instance, using SQL Server dbExpress driver you are able to backup SQL Server database using BACKUP DATABASE SQL command. But using Firebird dbExpress driver you can't backup Firebird database, as that needs to make use of Firebird services API. The same with lots of the areas.

You may also use both kind of motorists concurrently within the same project:

  • A dbExpress driver for those things that don't need specific features, so that you can achieve some type of portability between different database systems whilst getting stuck to Delphi standard components, at the fee for just a little reduction in performance.

  • A genuine native driver/component-set (like IBX) just for specific features that dbExpress can't address, like developing a database, carrying out a backup/restore or doing a bit of type of maintenance specific towards the database vendor. Native motorists may also be used to optimize modules demanding high-speed, for example bulk load procedures.

There's additionally a third way, by utilizing third-party database-independent components, like UniDAC and AnyDAC, that, based on its designers, tend to be more lightweight, more enhanced and much more effective than dbExpress, while protecting database independency plus some use of specific features.