procedure tform1.adodataset1beforepost(dataset:tdataset);
begin
  adoconnection1.begintrans;
end;
procedure tform1.adodataset1afterpost(dataset:tdataset);
begin
  adoconnection1.committrans;
end;
procedure tform1.adodataset1posterror(dataset:tdataset);
begin
  adoconnection1.rollbacktrans;
end;

解决方案 »

  1.   

    Adoconnection.begintrans;Adoconnection.committrans;Adoconnection.rollbacktrans;
      
    有事务处理,关键是一致性
      

  2.   

    难道不能有tadoquery吗?
    在线
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
       adoconnection1.begintrans;
       try
          adoquery.close;
          adoquery.sql.clear;
          adoquery.sql.add(insert 语句);
          adoquery.execsql;
          如果还有insert 语句则:
          adoquery.close;
          adoquery.sql.clear;
          adoquery.sql.add(insert 语句);
          adoquery.execsql;直到所有insert 语句完成.
          adoconnection1.committrans;
       except
          adoconnection1.rollbacktrans;
       end;  
    end;
      

  4.   

    这样更好,不用Tadoquery组件:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       adoconnection1.begintrans;
       try
          adoconnection1.execute(insert 语句);
          如果还有insert 语句则:
          adoconnection1.execute(insert 语句);直到所有insert 语句完成.
          adoconnection1.committrans;
       except
          adoconnection1.rollbacktrans;
       end;  
    end;
      

  5.   

    eoAsyncExecute.
    eoAsyncFetch
    eoAsyncFetchNonBlocking
    eoExecuteNoRecords
    着几个参数怎么使用