请高手帮忙,100分相送!(100分)

星火

Unregistered / Unconfirmed
GUEST, unregistred user!
三层结构或是ADO中,如何真正分段读取数据?(ClientDataSet的PacketRecord属性并不能真正解决问题,
因为它只是从应用服务器分段取出数据,而应用服务器还是一次性把数据全取过来了;而ADODataSet的分页显示
好象也不能真正实现分段取数据),请高手发表意见。
 
一个思路:多次读取
比如:每次都取100条。
 
我也知道这个思路,不过找不到具体的方法实现,写SQL语句的方法我也考虑过,但是由于
要增加一个ID字段排序,所以我没有采用,不知道还有没有其他办法???
 
感兴趣,听听高手的意见
 
看看李维的《ADO/MTS/COM+高级程序设计篇》吧,里面有详细的叙述。
 
看过了,那只是分页显示而已,其实并没有达到分段读取的效果
 
分段读,用ID定位。
 
1、假设若干字段组成一个唯一键key;
2、用sql读去100条数据(比如用top命令),并且升序排序;
3、记住最后以条的key值,作为下次查询的条件。
搞定!
 
我的解決方法是,每個數據庫加一個UID,用SQL查找,
例每次讀50條:
select Top 50 * from AA
where uid not in(select Top CurrPage*50 uid from AA)
 
来自:星火, 时间:2002-6-20 17:11:00, ID:1174566 | 编辑
我也知道这个思路,不过找不到具体的方法实现,写SQL语句的方法我也考虑过,但是由于
要增加一个ID字段排序,所以我没有采用,不知道还有没有其他办法???

 
BDE中又如何分段读取数据呢,有谁知道啊
 
难道没有人会吗??有好的想法和建议者,再加100分相送
 
如果把ClientDataSet的PacketRecord属性设为>0的数时可以进行分段读取,
但如果执行LOCATE、FILTER、SAVETOFILE操作时ClientDataSet会强行读取
所有的数据,你可以在这方面进行考虑。李维写的一本关于D5分布式编程的
书中有讲解。
 
问题:请高手帮忙,100分相送! ( 积分:100, 回复:12, 阅读:122 )
分类:MIDAS / DCOM ( 版主:Chenlili, 房客 )
来自:星火, 时间:2002-6-20 10:55:00, ID:1173847 | 编辑 [显示:小字体 | 大字体]
三层结构或是ADO中,如何真正分段读取数据?(ClientDataSet的PacketRecord属性并不能真正解决问题,
因为它只是从应用服务器分段取出数据,而应用服务器还是一次性把数据全取过来了;而ADODataSet的分页显示
好象也不能真正实现分段取数据),请高手发表意见。

 
你的问题主要是整个系统的效率问题!
请仔细阅读李维《ADO/MTS/COM+》书中第4章
中关于ADO组件的一些关键属性!
 
ado 的catchsize 属性好象没什么效果
 
顶部