關于ADO的异步取數据問題﹗(200分)

  • 主题发起人 主题发起人 billy_yuan
  • 开始时间 开始时间
B

billy_yuan

Unregistered / Unconfirmed
GUEST, unregistred user!
怎樣才能讓ADO象BDE一樣异步取數据﹐比如說妳取了10000筆數据,但是讓DBGIRD一次現實
100筆﹐邊拉動滾動條邊取數据﹗
 
我不知道,看看而已。早知道就不进来了
 
adodataset.maxrecord=xxx
我没试过
你试试
不行再说
 
ADO本身就可以以异步方式运行!它可以触发事件,查查Microsoft的ADO帮助!
 
设置recordset对象的CacheSize的大小
 
还没发现如何作到,以上提到的两种方法,试过不行。
 
设置AdoDataset的ExecuteOptions等于eoAsyncFetchNonBlocking
李维说的,他还说可以在OnFetchProgress事件中获得进度,但是我没有试成功。
 
换成传统得分页方式是不是会好些,和大家讨论一下.
 
异步肯定要比一次取數据要好,我們的表有200000筆資料,如果不要异步,用戶會發瘋的
 
如果是这样,你可以采用server-side cursor,但是要一直保持同数据库的联系(数据
传送),如果用户较多时,服务器也要发疯了。
设置recordset对象的cachesize,这样只有当数据有浏览要求时,超出cachesize的数据
才会传递到客户端。
 
设置AdoDataset的ExecuteOptions等于eoAsyncFetchNonBlocking
还有可能设置让滚动条来动态的改变Absolutlypage(好像是),这样可能就可以了。(这只
是我的想法,没试过),还有cachesize当然也要改成100
 
一个小的建议:
我觉得用户不可能滚动察看200000笔的数据,听着都头疼。用户实际上只关心
某些特定条件的数据,例如某一时间段的数据。
该开始进入界面,可以只显示表结构(有那些字段),让用户确定条件后,
进行查询,得出结果集。这样,尽量限制传递到客户端的数据数量。
 
多人接受答案了。
 
后退
顶部