ClientDataSet2.Data := ClientDataSet1.Delta;
  while not ClientDataSet2.Eof do
  begin
     ClientDataSet2.state....//我想知道ClientDataSet1.Delta的记录是insert delete modify中的哪一种,
//这个怎么操作阿,上面获得的都是dsBrowse  end;

解决方案 »

  1.   

    //我想知道ClientDataSet1.Delta的记录是insert delete modify中的哪一种,增删改都在里面,你可以把ClientDataSet1.Delta赋给另一个ClientDataSet就可以知道里面的内容了ClientDataSet2.Data := ClientDataSet1.Delta;
    ClientDataSet2.state这个默认就是浏览状态,当新增时是dsinsert,修改是dsedit,浏览是dsBrowse
      

  2.   


    我要判断ClientDataSet1.Delta里面是insert delete或者editClientDataSet2.Data的内容我已经看到了
      

  3.   

    if ClientDataSet1.state in [dsInsert] then
    ...
    else if ClientDataSet1.state in [dsedit] then
    ...
    else if ClientDataSet1.state in [dsBrowse] then
    ...
      

  4.   

    没有这样子用的吧,你要实现什么用功呢?应该是程序和原资料进行比对,新增:单记录,主键在表中没有重复则新增双记录:可以在ClientDataSet1.Delta中看到修改前和修改后的记录,则进行修改缺失记录,则删除,另ClientDataSet1.Delta默认在编辑时是有配对SQL语句的,所以也是在里面定位查找
      

  5.   

    http://topic.csdn.net/t/20031002/20/2321732.html看看这个帖子,这里我也没有细纠过
      

  6.   


    这个可以
     if ClientDataSet2.UpdateStatus=usUnModified then
      Memo1.Lines.Add('UnModified')
      else
      if ClientDataSet2.UpdateStatus=usModified then
      Memo1.Lines.Add('Modified')
      else
      if ClientDataSet2.UpdateStatus=usInserted then
      Memo1.Lines.Add('Insert')
      else
      if ClientDataSet2.UpdateStatus=usDeleted then
      Memo1.Lines.Add('Delete');
      ClientDataSet2.Next