我先通过查询按钮查出100条数据放入一个tclientdataset a中,
在查选随后的96条记录,感觉是从头又查了一边.在clientdataset中有个PacketRecord属性可以控制每次要调出的数据条数.

解决方案 »

  1.   

    但在执行a.appendrecord(b.data,true)这时,我已经监视过了,此时的a的记录数确实是100,b是96 
    但最后上一句执行好,在监视时,发现a的记录却不是196,而是292
      

  2.   

    没有append 2次,请告知错误在那里?就在执行a.appendrecord(b.data,true)的前后,执行前a是100条,b是96条,都监视过了,但执行这句之后,a是292条了,不知道是不是这句语句有什么原因?
      

  3.   

    表4-9查寻方式
     缺点
     优点
     
    Locate
     会从数据来源中下载所有的数据,如果数据表中包含大量的数据,那么执行效率会很缓慢,而且容易造成客户端的当机
     查寻数据的执行效率保持稳定的结果,而不管要查寻的数据是否已经存在于结果数据集中,而且没有其他的副作用
     
    使用CloneCursor
     如果欲查寻的数据不在结果数据集中,那么仍然会下载数据表中所有的数据,而且表现的比直接使用Locate等方法还缓慢
     如果欲查寻的数据已经存在于结果数据集中,那么它可以避免下载所有的数据,并且能够快速地找到查寻的数据
     
    使用CloneCursor加SQL语句加AppendData
     可能会发生重复数据的副作用
     提供最快的查寻效率,不管数据是否在结果数据集中,或是后端数据来源中。同时下载的数据量最少,网络的负荷最轻
     
    使用拷贝数据
     程序必须拷贝一些额外的数据
     可以提供比直接使用Locate等方法更好的查寻效率,同时没有CloneCursor方法的缺点,也没有CloneCursor加SQL语句的副作用
     
      

  4.   

    就是说appendrecord可能出现重复数据?
      

  5.   

    a.appenddata(b.data,true)吧 ~~
      

  6.   

    代码贴出来看看,一定是你自己的原因,DELPHI连这种低错误都能发生的话早关门了
      

  7.   

    append的时候,看看主键。有时候是替换更新,有时候是直接新增,特别是刷新的时候要注意,不然数据重复。