Subject Re: Delphi + Firebird - IBX or what?
Author Adam
--- In, "k_smith_000"
<k_smith_000@y...> wrote:
> --- In, "Si Carter"
> <simon.carter@t...> wrote:
> > > -----Original Message-----
> > > I am looking for free or low-cost component solution for
> > > using Firebird from Delphi.
> >
> What do you think about ADO or dbExpress ?

Obviously there are two things to consider here. Most of these layers
are designed as a form of database abstraction layer. ie, a database
independent way of doing things. If you do want the option to quickly
change DBMS in the future, then you must consider these.

There are three problems with these.

1. Dumbest denominator syndrome. Particularily BDE, some component
sets can "dumb down" access to the database a lot, and end up giving
you a autocommit read committed transaction, leaving you with piles of
garbage. Because such components need to interface to paradox style
databases, they cant really make good use of transactions.

2. Translation layers. Obviously if your database access is not native
to the dbms, then it is going to need to be translated to the specific
API at runtime. This may have performance implications.

3. The same approaches do not necessarily work well between different
dbms. Some queries that run lightning fast on Firebird will be slow on
MSSQL and vice versa. You will find yourself designing for a
particular system, and then "supporting" the other system, and the
supporting system will perform nowhere near as well.

It is because of these that I would suggest that you use a data
abstraction layer. With Delphi, something like RemObjects or KBM. Then
you can access the database using something more native, like IBO,
IBX, MDO, UIB etc when connecting to Firebird, and ADO when connecting

The performance issues from the original poster are design issues.
Grids don't work when you have lots of data. Period. I have never seen
a business proces that necessitated putting a million records in a
DBGrid. I have seen huge DBGrids because the original product was
designed for significantly fewer records.


> I've heard that dbExpress is good only for small application that
> mostly generate reports and don't work with large datasets. I'm also
> not sure about dbExpress future. Moreover I don't have any experience
> with Firebird dbExpress drivers (as far as I know there is only one...)
> ADO is reported to be good solution but you have to find reliable ADO
> provided - as far as I know there is IBProvider and SIbProvider. Can
> you recommend any of them for work with large datasets?
> There is also a choice to use native components (IBObjects for
> example) which are the fastest solution but unfortunately it's hard to
> migrate from IbObjects to other DB (for example MS SQL Server and OLE
> DB technology).
> Still there is BDE and ODBC but they are now obsolete and should not
> be used.
> If you were to chose db access method in delphi which would you chose
> (for application handling large datasets)?
> Do you know where we can find ADO/dbExpress/BDE benchmarks and
> comparicions?
> Best regards,
> Kevin Smith