为何将ClientDataset1.data的值赋给ClientDataSet2.data,ClientDataset2.ApplyUpdatas(0)后,未出现任何错误,而且两个ClientDataset的字段结构一致

解决方案 »

  1.   

    我要ClientDataset2能将数据提交到数据库,现在是不出错,但没能提交到数据库
      

  2.   

    虽然ClientDataSet2.Data 等于ClientDataSet1.Data, 但是ApplyUpdates只提交Delta,也就是ClientDataSet1.Delta.而ClientDataSet2.Data := ClientDataSet1.Data是不会把Delta复制给ClientDataSet2的,所以提交不会出错.其实并没有数据提交.
      

  3.   

    To LVLoj 我在给ClientDataset2赋值后,我跟踪出ClientDataset2.RecordCount=ClientDataset1.RecordCount且不等于0  为何
      

  4.   

    你再操作ClientDataSet2的数据,就可以提交了
      

  5.   

    lvloj() ( ) 说得对。虽然ClientDataSet2.Data 等于ClientDataSet1.Data, 但是ApplyUpdates只提交Delta,也就是ClientDataSet1.Delta.而ClientDataSet2.Data := ClientDataSet1.Data是不会把Delta复制给ClientDataSet2的,所以提交不会出错.其实并没有数据提交.
      

  6.   

    但我以前用ClientDataSet2.Data := ClientDataSet1.Data是可以的,现在不知该了什么地方
      

  7.   

    当然是不行的,因为ClientDataSet1的修改记录(Delta,记录了所有未提交的修改)不可能传送给ClientDataSet2。
      

  8.   

    RecordCount是ClientDataSet的记录数, ChangeCount才是被修改了的记录数.