On Mon, 27 Mar 2017, Gary Doades wrote:

>> The problem therefore lies in either the Pascal layer on top of the native 
>> client libs or in the way the client libs themselves work :( I suspect the 
>> latter.

> As far as I know, the DB-Specific pascal layer does not buffer anything, it 
> just fetches the result.
> There is of course little to no control over how the client lib fetches the 
> result.

> If memory serves well, mySQL has 2 separate calls: mysql_use_result and 
> mysql_store_result where the difference is exactly how it fetches the result 
> set.

> Please report your findings, if any :)

Yeah, exactly right. The Pascal code in mysqlconn.inc calls mysql_store_result 
which does indeed fetch the entire result set into memory. It could be changed 
(perhaps) to use mysql_use_result instead which does row-at-a-time streaming, 
but I'm not sure I have the expertise to make that change or what any other 
implications of that change might be.

I may hack it for my own purposes in the short term to see what happens!

Thanks,
Gary.


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to