+ -
当前位置:首页 → 问答吧 → ADODataSet+DBGridEh做主从表,求完整性同步保存方法

ADODataSet+DBGridEh做主从表,求完整性同步保存方法

时间:2011-08-09

来源:互联网

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);
也没有用

作者: terryzhao01   发布时间: 2011-08-09

ADOM1.Post;
ADOM1.Edit;
為什麼是這個順序?

作者: Oraclers   发布时间: 2011-08-09

提交之前先檢查,
多謝樓上的,希望有更好的方法

作者: terryzhao01   发布时间: 2011-08-09

热门下载

更多