我用了两个ClientDataSet,分别为cds1,cds2,其中cds1的数据从服务器取,然后,在cds1中有数据的情况下,我将cds2=cds1怎么cds2中没数据啊?

解决方案 »

  1.   

    cds2.XXX=cds1.XXX   
    记不清XXX是什么了,你可以自己试一下
      

  2.   

    应该是把1的数据记录给2所以代码应该是cds2.date:=cds1.date;试试。
      

  3.   

    cds2.CloneCursor(cds1,TRUE)
    **** 深圳的DELPHI爱好者聚会通知! ****详情请看:
    http://www.delphibbs.com/delphibbs/dispq.asp?LID=1619353
      

  4.   

    To copy the data from another dataset at design time, right click the client dataset and choose Assign Local Data. A dialog appears listing all the datasets available in your project. Select the one whose data and structure you want to copy and choose OK. When you copy the source dataset, your client dataset is automatically activated.设计时就是在cds上点右键然后选assign local data就会看到当前project中可用的其它cds,选就行了运行时
    ClientDataSet1.Data := ClientDataSet2.Data;
    还可以用CloneCursor :
    When you copy the Data property of another client dataset, you copy the change log as well, but the copy does not reflect any filters or ranges that have been applied. To include filters or ranges, you must clone the source dataset's cursor instead.
      

  5.   

    没错, 用Data属性可意直接赋值. 类似的还有个Delta属性, 是ClientDataSet准备传回给Provider的数据.
      

  6.   

    cds2:=cds1;实际上cds2 已经指向 cds1 了,因此 cds2 和 cds1 用的是 TClientDataSet 的同一个实例,如果 cds1 有数据,cds2 应该与 cds1 一样。