Subject Re: [IBO] IBodataset vs IBX
Author rogervellacott
Daniel Rail wrote..
> This comes into play with more advanced features of TIB_Query that
are not found in TIBOQuery.>


In fact, TIBOQuery is a wrapper around a TIB_ dataset component. You
can access this component through the property
IBOQuery.InternalDataset. InternalDataset gives you most of the
functionality of TIB_Query.

Of course, it is about three years since I looked at IBX, so it may
be totally different now, but here are just two differences between
IBX and IBO either of which would clinch the argument for me. There
are many more differences, but I don't want to bore you.

1. Single Record Refreshes

In IBO (TDataset) you can do the following to refresh a single row.

with MyQuery.InternalDataset do
InvalidateRownum(Rownum);

Last time I looked at IBX you could not refresh a single row. You
had to refresh the whole table and then relocate to the record.

2. Calculated Fields

Another thing which for me was a killer in IBX was the CalcFields
functionality. If you use IBX calcfields, every calculation is
called even when you scroll through with controls disabled. So
performance on a large table with calcfields suffers greatly. Even
Locate calculates fields on every record it touches.

In IBO, CalculatedFields is a property of IBOQuery.InternalDataset,
and is immensely powerful and flexible. It makes things possible
which would normally be out of the question.

I decided to use TIBODataset components and VCL components together,
and ignore all the IBO visual components, because at the time I
wanted to keep the option of using different RDBMSs. If I had to
take the decision again, now that I know the progress made on
Firebird, then I would probably have used IB_ data aware controls as
well.


Roger Vellacott