ADOM1 主表  MA--MA01,MA02,MA03
ADOD2 从表  MB--MB01,MB02,MB03,MB04,---
已建立主从关系MasterFields=MA01  Indesfieldnames=MB01我用事务处理出现新的一些问题
ADODataSet2.LockType:=itbatchoptimisic;try
 ADOM1.Post;
 ADOM1.Edit;
except
 messagebox(self.Handle,'主表输入不完整','提示',mb_iconinformation+mb_ok);
 ADOM1.Edit;
 abort;
 end;try
 ADOD2.Post;
 ADOD2.Edit;
except
 messagebox(self.Handle,'从表输入不完整','提示',mb_iconinformation+mb_ok);
 ADOD2.Edit;
 abort;
 end;
 ADO.BeginTrans;
 try
// ADOM1.Post;
 ADOM1.UpdateBatch(arALL);
// ADOD2.Post;
 ADOD2.UpdateBatch(arALL);
 ADO.CommitTrans;
 except
 ADO.RollbackTrans;
 messagebox(self.Handle,'S不能保存','提示',mb_iconinformation+mb_ok);
 abort;
 end;问题是:如果从表输入不合数据库原则,比如输入了两条相同的记录,保存时有提示错误'S不能保存',但改修过来后再保存提示‘主表输入不完整',再点保存,主表没有存入据库,从表只保存了那条修改记录,
ADOM1.CancelBatch(arALL);
ADOD2.CancelBatch(arALL);
也没有用