为什么用ClientDataSet和ADODataSet读取同样的数据量,
ClientDataSet要比ADODataSet慢许多。
有什么方法可以提高ClientDataSet的读取速度,

解决方案 »

  1.   

    我不知道这是为什么,但是ADO确实比BDE要快,特别是现在的新版本,设PACKETRECORDS 是不能从根本上解决问题的.
      

  2.   

    这好像跟BDE没什么联系,
    ClientDataset也可以用ADO来connection
      

  3.   

    楼上的说的对,我的ClientDataSet是为Ado进行连接的.
    各位还有什么方法可以解决这个问题
      

  4.   

    if PACKETRECORDS=-1 then
       读出表所有记录->内存  //如果有100000条,完了,不过有很好的解决方法,去找找李纬的书
    else
       读出所规定的记录->内存; //
      

  5.   

    好像直接用Ado是类似于Sql的读取
    Clientdataset偏向于Table的读取,所以有差距
      

  6.   

    ClientDataSet主要用在三层结构中的客户端,ADODataSet主要用在两层结构中的客户端,有可比性吗?ADODataSet可以和数据库层始终保持互动(通过PACKETRECORDS的设置),一次只取少量纪录,ClientDataSet
    如果用open取数据和ADODataSet一样,可以和中间件层始终保持互动(通过PACKETRECORDS的设置),一次只取少量纪录,
    如果用datarequest,就是一次从中间件取回所有数据,PACKETRECORDS就没用了。