将ADODataSet导出的数据导回原来的table

类别:Delphi 点击:0 评论:0 推荐:
我们都知道,ADODataSet可以将数据保存为 xml或者 pdfg格式的本地数据文件,
但是,如果将数据保存后推出,不做任何修改,下次将数据用AdoDataSet.loadFromFile加载后
系统是不会将数据给我们送回原来的备份的table的,简于此,我写了一个函数,可以将单表导出的数据
再次到会到原来的table 中,但条件是,你的 PK不能是 自增的,如果有这种情况,你可以在我的代码中
稍稍改动下,就可以了,不难,呵呵
procedure importData(Conn:TADOConnection;TableName:string;AdoDataSet:TADODataSet);
var
 i : integer;
 RDataSet: TADODataSet;
begin
 RDataSet := TADODataSet.Create(nil);
 RDataSet.Connection := Conn;
 RDataSet.LockType := ltBatchOptimistic;  RDataSet.CommandText := format('SELECT TOP 1 * FROM %s',[TableName]);
  RDataSet.Open;  AdoDataSet.First ;
  try
     while not AdoDataSet.Eof do
     begin
       RDataSet.Append;
       for i:=0 to AdoDataSet.FieldCount -1 do
       begin
         RDataSet.Fields[i].Value := AdoDataSet.Fields[i].Value;
       end;
       RDataSet.Post;
       AdoDataSet.Next;
     end;
       RDataSet.UpdateBatch();
  finally
    RDataSet.Free;
  end;
end;


本文地址:http://com.8s8s.com/it/it4761.htm