有关李维著作中的Q(100分)

to guqs,shsshashssha:
我按guqs所说试了一下:
1。FatchOnDemond为True,PacketRecordes为10,ClientDataSet active=true,DBGrid row=10
会自动分段下载。
第一次会先下载10条记录,向下滚动继续下载,每次10条。
2。FatchOnDemond为True,PacketRecordes为10,ClientDataSet active=true,DBGrid row=15
则第一次会连续下载20条记录。
3。FatchOnDemond为True,PacketRecordes为10,ClientDataSet active=true,DBGrid row=10
用locate搜索数据时,ClientDataSet 会自动下载所有服务端的数据(无论ClientDataSet 中
是否已存在该记录)。
4。但用 ClientDataSet.CommandText搜索数据后,再用locate搜索时,locate失效。why?
 
to sanming
当用DBGrid显示时,为铺满格子,会自动下载足够显示用的包。
不知你说的Locate失效指的什么意思?
当用CommandText搜索数据后,Locate和分段下载的效果同样存在,除非你的Commandtext
搜索出来只有几条,因为此时服务端Query已接受了Commandtext的条件,Query所查出来的
数据集也只有几条了。
 
to guqs
“locate失效”就是用Commandtext搜索数据后,用locate就再也不能搜索到数据了,好象
locate语句没有执行。
 
to sanming:
减小packetrecords的大小试试
 
to sanming:
可能你用Commandtext查找到的数据集范围小,内部本来就没有要loacte的那条记录,因此
用Locate找不到。
 
to guqs:
FatchOnDemond为True,PacketRecordes<>-1 时,locate的确会出现您说的现象。
另外我发现clientdataset.savetofile也有此现象。
调用commandtext时,若下载的第一个数据包的记录数<packetnum,即一次下载完,再调用
locate不会继续下载(因为已经下载完了);若一次不能下载完,调用locate,就会继续
完下载应用服务器中的数据.
 
to guqs
哦,我明白了。谢谢!
 
to shsshashssha, modernman,qugs:
噢!我分配错分数了,把100分全给了qugs,我本想这样分配的:
shsshashssha-20,modernaman-40,qugs-40;
有没有办法从新分配呢?
 

Similar threads

回复
0
查看
653
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
顶部