[fpc-pascal] TSQLQuery and buffering.

Michael Van Canneyt michael at freepascal.org
Sat Mar 25 10:30:18 CET 2017

On Sat, 25 Mar 2017, Gary Doades wrote:

> On Fri, 24 Mar 2017, Gary Doades wrote:
>>> Really, the question is simple: Is there ANY way of TSQLQuery NOT 
>>> reading the entire result set into memory?
>> Set Unidirectional to True, and it will keep only 1 row in memory.
>> When you are simply scanning through the result set, this is all you need.
> Hi Michael,
> Many thanks for your reply. I had read about UniDirectional and I have indeed tried this. It doesn't seem to make any significant difference. Looking through the source code for TBufDataset it looks like UniDirectional just turns off building various indexes/structures etc. and fetches the result set all in one go instead of 10 row chunks. It still buffers everything in memory.

In that case, it is a bug. The very purpose of UniDirectional is 
exactly NOT to buffer anything, just to keep the current record in memory.


More information about the fpc-pascal mailing list