Subject RE: [IBO] Is TIBOTable Good?
Author Helen Borrie
At 03:23 AM 14-03-01 +1000, you wrote:
>Thanks for the help.
> > >I am just wondering, is using TIBOTable completely (not bothering with
> > >IB_Query) a good thing / optimized?
> >
> > The answer is that using table components as the general rule in
> > client/server is NOT a good thing. That said, TIBOTable is just
> > about as optimized as you can get. Jason has some further
> > enhancements to it coming up in IBO 4 (now in beta).
>Will it be OK to use TIBOQuery ? Will this be an acceptable way and not bad
>in c/s ?

TIBOQuery is the preferred way for C/S. I think you mentioned that your app depends a lot on searching - if this is the case, you would do yourself a big favour by using the "native IBO" components (TIB_*) because they encapsulate all of the searching code in the architecture of the data access objects and the search controls. Where they win over third party controls is that they are "database-aware", i.e. they make the intelligent decisions about whether to search in memory or to visit the database. Third-party TDatasource-compatible controls do smart searching but they are very inefficient for c/s.

When thinking about developing for client/server databases, keep in the foreground of your thinking that the client interface is *remote* - unlike with desktop database apps, clients never touch the database at all. EVERYTHING (even access through a table component) is done through querying to bring back a snapshot of what this particular client saw at a particular instance in time and then attempting to update back to the database via another query.

> > Well, compatibility with the TDatasource-using controls is the
> > common reason for using the TIBO* components. Why do you believe
> > you need a table component for compatibility with the standard grid?
>What component should I use then?

Use a TIBOQuery for everything that is dynamic. TIBOTable is OK for small, static datasets that you want to just load and keep in memory, such as a lookup to a control table. Even so, if you use "native IBO" instead of the TDatasource-compatible data access, you can get these static datasets into memory much more efficiently with TIB_Cursor. (plugplugplug)


All for Open and Open for All
InterBase Developer Initiative ยท