procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
begin
  ClientDataSet1.EnableControls;
  ClientDataSet1.Close;
  ClientDataSet1.SetProvider(DataSetProvider1);   //连接一个表
  ClientDataSet1.Open;   //这时CDS中己有数据  ClientDataSet2.LoadFromFile('d:\xx.xml');   //导入已经创建好的XML文件
  ClientDataSet1.AppendData(ClientDataSet2.Data,false);  //记录已经成功追加(在GRID中可以看出)
  ClientDataSet1.ApplyUpdates(0);  //可是为什么提交不到表中呢!????
  ClientDataSet1.DisableControls;end;

解决方案 »

  1.   

    ClientDataSet1.AppendData(ClientDataSet2.Data,false);  //记录已经成功追加(在
    ClientDataSet1.Data := ClientDataSet2.Data;
    等方法时,ClientDataSet1均认为读入的是原始数据,即数据没有变化,
    ClientDataSet1.ApplyUpdates(-1);只提交变化的数据。只有逐条记录加入:
    ClientDataSet1.Data := ClientDataSet2.Data;
    ClientDataSet1.EmptyDataSet;
    while not ClientDataSet2.Eof do begin
     ClientDataSet1.Append
     for i:=0 to ClientDataSet1.FieldCount-1 do
      ClientDataSet1.Fields[i].value := ClientDataSet2.Fields[i].Value;
     ClientDataSet1.Open;
     ClientDataSet2.Next;
    end;
      

  2.   

    ClientDataSet1.ApplyUpdates(-1);只提交变化的数据。
      

  3.   

    DataSetProvider 转一下决对行