unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, StdCtrls;type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
try
self.ADODataSet1.SaveToFile('test.dtg',pfadtg);
finally
self.ADODataSet1.Active:=false;
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
try
  self.ADODataSet1.Active:=false;
  self.ADODataSet1.LoadFromFile('test.dtg');
finally
  self.ADODataSet1.Active:=true;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
  try
    self.ADODataSet1.Active:=true;
    self.ADODataSet1.UpdateBatch();
  finally
  end;
end;end.

解决方案 »

  1.   

    这样的结果一定是目标数据库没最新数据
    你update的只是那个文件
      

  2.   

    这样做试验比较好
    做两个表,结构相同,一个表有数据,一个表没数据
    然后从表A中读出数据并写入文件
    再从文件中读入数据,然后做updatebatch,要实现表B内能有数据,则试验成功。
      

  3.   

    数据库也变了,我打开MSSQL看了
      

  4.   

    可能你要设一个属性 aoddataset.locktype:=batchoptimistic
      

  5.   

    三年前我处理过这个问题,要找一下以前的代码了,你的Email?
      

  6.   

    [email protected]在李维的书上有这方面的内容