使用DataRequest,好象PacketRecords属性失效了,clientdataset显示的是全部的查询结果。
还有就是调用服务器的方法,用类似result:=search_customersProvider.Data;来返回查询结果,clientdataset也是显示所有的查询结果PacketRecords属性也失效了。
这么多种方法,好象只有使用commandtext才可以分批下载查询结果。
但我又不想使用commandtext,想直接在服务器端进行查询。有什么方法可以做到这一点呢?

解决方案 »

  1.   

    Commandtext就是在服务器端进行查询的。它将最终查询结果返回给TClientDataSet.
      

  2.   

    to star_of_light:
    commandtext的确是在服务器端查询,但SQL语句却是在客户端生成的,我想SQL语句也在服务器端生成。to gxdmm:
    李维所说的几种方法里都没有解决这个问题,请指教。
      

  3.   

    自己编写sql语句,分批取数据。例如:table的主键是rowid,那么可以lowid作为一个参数,传递到server。server端这样生成sql:
     select top 10 * where rowid>lowid;
    这样没有问题。
      

  4.   

    DataRequest取多少数据完全归你控制,当然跟PacketRecords无关了,这个就要你自己通过DataRequest的参数来控制了.