Subject Re: Client-Side buffers
Author alex_vnru
--- In ib-support@y..., "Reggie White" <reggiewhite@l...> wrote:
> All of this I understand, but what I'm asking is this...
> ex. client application fetches 1(one) row the server, the server
sends over
> 10 rows. These rows are now batched on the client side (by the
client side
> Firebird/Interbase components/DLL). Now when the client requests
another
> row, that row is pulled from the client side buffer(maintained by
the client
> side FB/IB components/DLL). New data is requested from the server
when the
> rows in the client side buffers are exhausted. This type of
implementation
> is used by some of the big databases.
>
> But from your answer I guess FB/IB does not support this.

Reggie, try

Select Gen_id(MyGenerator,1), field1.... from table1

where table1 is long enough table via non-buffering component (TIBSQL
for example, I'm Delphi programmer, don't know analogue for BCB,
sorry). Your APPLICATION received 1 row. Now

Select Gen_id(MyGenerator,0) from rdb$database

you'll see amount of rows fetched by SERVER. At least half of them are
stored at this moment at client's network buffer and FB dll's will get
them here until buffer ends and then demand next BUFFER. Network
protocol itself make buffering, why we should overdo this in FB client
library?

Best regards, Alexander V.Nevsky.