Subject Re: DataSetProvider, ClientDataSet performance
Author constantijnw
Hi Glenn,

There an issue regarding IBO and TDataSetProvider. Helen wrote
recently that Jason is working on it. One of the issues is that
quering via the CommandText property of TClientDataSet doesn't work
when using TSOAPConnection. Moreover it seems that despite the recent
update patches again 9 bugs concerning TClientDataSet have been
reported in QC already.

--- In, "gtsglenn" <Glenn.Stephens@a...> wrote:
> I am having a performance issue of tryng to fill a ClientDataSet
> using a DataSetProvider using IB Objects.
> Compare the following:
> Drop a TIB_Connection, a TIB_Transaction and a TIBOQuery. Set the
> SQL for the TIBOQuery and connect it up to the TIB_Connection & the
> TIB_Transaction.

This is a multithreaded environment. Shouldn't you use a TIB_Session
component also?

> Now drop a TDataSetProvider and TClientDataSet. Connect the
> TDataSetProvider up to the TIBOQuery and then set the
> TClientDataSet's provider to be the TDataSetProvider. Then Set the
> Active property of the TClientDataSet to true.
> You will see (or at least I do) that the command takes quite a long
> time to be downloaded.

What do you mean with "command downloaded". I assume you use the
CommandText property of the TCLientDataSet component. Don't do that.
It's intended for ad hoc commands only.
TIBOQuery should contain the SQL statement.

> Try the same thing with the TIBDatabase, TIBTransaction & TIBQuery
> that come with Delphi and you will see the performance difference.
> Does anyone know why this occurs. I would like to use IB Objects,
> but this is almost a showstopper.

I've only compared performance of IBO with DBX a few times. They are
almost equally fast.
In general I haven't encountered performance problems at all. Be aware
of the kind of architecture you are using. 99% of performance problems
stem from client side design flaws.