M
marknew
Unregistered / Unconfirmed
GUEST, unregistred user!
大发现!(关于ADO异步存取)
不要将TCustomAdoDataSet的ExecuteOption设为eoAsyncFetchNonBlocking,
当cachesize大于记录数时可能无法返回记录集,而且速度较慢。
不如将它设为eoAsyncFetch.
看帮助的解释吧:
The command fetches remaining rows after the initial
quantity specified in the Cache property asynchronously.
也就是说先取cachesize大小的记录数,然后再异步取余下的记录,速度奇快!和cachesize
的大小设置基本无关!也不会出现上述问题,
而且可以写进度事件。OnFetchProgress和onFetchComplete.
我的测试如下:
记录数:16178
eoAsyncFetchNonBlocking:2.202秒
eoAsyncFetch:1.212秒
基本上相差1秒!
不要将TCustomAdoDataSet的ExecuteOption设为eoAsyncFetchNonBlocking,
当cachesize大于记录数时可能无法返回记录集,而且速度较慢。
不如将它设为eoAsyncFetch.
看帮助的解释吧:
The command fetches remaining rows after the initial
quantity specified in the Cache property asynchronously.
也就是说先取cachesize大小的记录数,然后再异步取余下的记录,速度奇快!和cachesize
的大小设置基本无关!也不会出现上述问题,
而且可以写进度事件。OnFetchProgress和onFetchComplete.
我的测试如下:
记录数:16178
eoAsyncFetchNonBlocking:2.202秒
eoAsyncFetch:1.212秒
基本上相差1秒!