Subject | Re: [IBO] Speed up reading every row in an TIB_Cursor |
---|---|
Author | Marco Krause |
Post date | 2002-07-29T20:48:49Z |
> AutoFetchAll seems not to work, when the IBO-Controls are used within a thread.Try to set TIB_Cursor.CallbackInc to -1 or 0 (no fetching window is displayed)
> (The thread owns a TIB_Sessios, which itselfs owns a TIB_Connection, a TIB_Transaction and
> a TIB_Cursor). The software seems to hang after a few rows are fecthed.
IMHO the fetching window don't work in threads...
BTW: If you need performance and you are using select/insert statements like 'select a,b,c,d,e,f
from x' with many records then take a look at your source: You get much better performance
if you get the fields from the cursor in the same order:
with TIB_Cursor do begin
dummy := FieldByName('a').AsString;
dummy := FieldByName('b').AsString;
dummy := FieldByName('c').AsString;
dummy := FieldByName('d').AsString;
end;
Example:
One of my querys (table scan over 130000 records with 15 calls to IB_Cursor.FieldByName)
runs in 60 seconds. With this modification in the source of IBO it tooks only 23 seconds!
You need IBO >= 4.2Hd to use this feature.
--
Marco Krause