使用ADO,三层结构。在客户端通过5个TClientDataSet导出几张表。如果都修该了,我想在一个事务内进行。该怎样

解决方案 »

  1.   

    可以把更新表的代码写在1,2之间tryADOConnection1.BeginTrans;////////1 clientdataset1.close;
     clientdataset1.commandtext='update table1 set ....... ';
     clientdataset1.Execute; clientdataset2.close;
     clientdataset2.commandtext='update table2 set ....... ';
     clientdataset12.Execute;.............ADOConnection1.CommitTrans;/////////2execpt
    beginADOConnection1.RollbackTrans;end;
    end;
      

  2.   

    感谢楼上的参与
     lovend(颓废之吻)的方法有好大的不足。如果提交的Data有修改、新增、删除。那不是都要要判断,还有判断哪些字段修改了,这样写的话,很复杂,估计效率不高