关于搜索大量数据的问题,数据流量的控制(35分)

  • 主题发起人 主题发起人 gzcom
  • 开始时间 开始时间
G

gzcom

Unregistered / Unconfirmed
GUEST, unregistred user!

database-->query-->DataSetProvider-->ClientDataSet-->datasource-->dbgrid
我是用clientdataset 的packetrecord 来控制数据的流量
效果不错
***************************
现在的问题是如果我是换成:
1.adoconnetion-->adoquery-->DataSetProvider-->ClientDataSet-->datasource-->dbgrid
当clientdataset.open 时间很长 ,我看过是和adoquery有关
而且很容易死机
我们现在必须使用ado 不知道是要求什么设置
请指教!!!!!!
2.无论那种方法如果把dbgrid 的scollbar 的游标拉到最后时,就会把数据全下载下来
时间很长,而我是想无论在什么情况下都是分段下载数据,不知道有什么方法没有,

 
1、改ADOQuery的CacheSize:=ClientDataSet.PacketRecord
CursorLocation:=alUseClient
CursorType:=ctStatic
LockType:=ltOptimistic/ltBatchOptimistic
这样就能加快你的速度。(CacheSize最好小于900条记录)。
2、AdoQuery用Select To n * from [表] where ....
改ClientDataSet.FetchOnDemand的属性为False
自己取数据集。
 
1。ADOQuery有MaxRecords属性。可以限制下载的行数。
2。不要用“SELECT * FROM ....”之类的查询,优化一下语句,
传尽量少的列(必须的列),尤其是不要查含BLOB的字段,
3。BLOB列仅在需要时,查相应的一行数据。
4。总之,查询出的DataSet尽量的小....
 
使用SQL,获取尽可能少的数据,应该可以有一定的改善。
 
database-->query-->DataSetProvider-->ClientDataSet-->datasource-->dbgrid
用clientdataset 的packetrecord 来控制数据的流量;为什么我设置了没有效果呢???
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部