I am starting with Firebird and have found components to access a database by Devart.
They offer native components (IBDAC) or DBExpress drivers. (I am using Delphi XE2 Pro which doesn't include Firebird drivers)
I guess native components are a bit faster, but that's not too important for me.
What are the advantages/disadvantages of each approach and why should I choose one over the other?
IBdac
- your application is tied to firebird
- you are familiar with bde or ado
- performance
- maximal Firebird support
DBexpress
- portability (it is easy to port you application to anther database).
- upgrade pro edition to enterprise so you can use one supplied by
embarcadero.
You can check Devart FAQ.
Check Anydac. It is universal data access library, but supports most of Firebird specific features including - multiple transactions, database events, services (backup/restore), etc. The performance is very good. Sorry, i cannot imagine dbExpress advantages over Anydac.
FIBPlus and UIB are also good choice
Native components can support database specific functions. I've missed event support with DBExpress when using 3rd party driver from Upscene.
DBExpress should make it easier to create database agnostic application, but I've no experience about that.
ZEOSlib might be a nice alternative, actively developed and supporting many databases including Firebird.