ADOQuery1连接主表,ltOptimistic
ADOQuery2连接从表,ltBatchOptimistic
try
ADOQuery1.Connection.BeginTrans;
ADOQuery2.UpdateBatch;
ADOQuery2.Post;
ADOQuery1.Connection.CommitTrans;
except
ADOQuery1.Connection.RollbackTrans;
end;
ADOQuery2提交成功,但ADOQuery1保存出错,在用户将ADOQuery1的数据修改
正确后再次提交,因ADOQuery2已经写入到本地缓存,无法再写到后台数据库中,
高手请告知解决方案,一定给分,并感激不尽!
ADOQuery2连接从表,ltBatchOptimistic
try
ADOQuery1.Connection.BeginTrans;
ADOQuery2.UpdateBatch;
ADOQuery2.Post;
ADOQuery1.Connection.CommitTrans;
except
ADOQuery1.Connection.RollbackTrans;
end;
ADOQuery2提交成功,但ADOQuery1保存出错,在用户将ADOQuery1的数据修改
正确后再次提交,因ADOQuery2已经写入到本地缓存,无法再写到后台数据库中,
高手请告知解决方案,一定给分,并感激不尽!
解决方案 »
- 程序运行时如何固定TFORM的大小
- rave Execute 打印时为什么会将数据连接对象重新运行次
- 200分提问!!!----DELPHI程序调试求救
- 难道就没有人会,我都是第二次发贴了!关于在ActiveX控件中用ADO连接数据库问题?谁要是会,两个贴的分都给他,还可以补分!
- 高手请教 关于存储各种类型的图片问题
- install expression 打包问题 急急急
- 请教
- == 建Paradox表的Sql语句怎么写?==
- 高分!!谁有电力系统软件的系统设计文档?Help me!
- 请问,如何在delphi中在运行的时候查看一个变量的值。就象是在VC中一样。
- 紧急救助!!!!!!!!!!!!!!!
- 在delphi中这个怎么表示?
ADOQuery1.Connection.BeginTrans;
ADOQuery2.UpdateBatch;
ADOQuery1.Connection.CommitTrans;
except
ADOQuery2.CancelBatch;
ADOQuery1.Connection.RollbackTrans;
end;
ADOQuery2连接从表,ltBatchOptimistic
try
ADOQuery1.Connection.BeginTrans;
ADOQuery2.UpdateBatch;
ADOQuery1.Post;
ADOQuery1.Connection.CommitTrans;
except
ADOQuery1.Connection.RollbackTrans;
end;
贴错了,应该如上
p r o c e d u r e TForm1.ADOQuery1BeforePost(DataSet: TDataSet);
b e g i n
A D O Query1.C o n n e c t i o n . B e g i n T r a n s ;
e n d ;
p r o c e d u r e TForm1.ADOQuery1AfterPost(DataSet: TDataSet);
b e g i n
A D O Query1.C o n n e c t i o n . C o m m i t T r a n s ;
ADOQuery2.UpdateBatch
e n d ;
p r o c e d u r e TForm1.ADOQuery1PostError(DataSet: TDataSet; E:
EDatabaseError; v a r Action: TDataAction);
b e g i n
A D O Query1.C o n n e c t i o n . R o l l b a c k T r a n s ;
ADOQuery2.CancelBatch
Action := daAbort;
e n d ;
大家必须按照规定的顺序提交,又因为ADOQuery2中用户可能输入很多数据
所以不可CancelBatch,而且一旦ADOQuery2.UpdateBatch成功后
虽然RollbackTrans可以保证不提交到后台数据库,但是此时本地的缓存中
ADOQuery2已经成功写进去了,当用户把ADOQuery1的数据修改好以后再保存时,
ADOQuery2的数据已经无法再提交到后台了!!!!!
大家必须按照规定的顺序提交,又因为ADOQuery2中用户可能输入很多数据
所以不可CancelBatch,而且一旦ADOQuery2.UpdateBatch成功后
虽然RollbackTrans可以保证不提交到后台数据库,但是此时本地的缓存中
ADOQuery2已经成功写进去了,CancelBatch已经放弃不掉了!
当用户把ADOQuery1的数据修改好以后再保存时,
ADOQuery2的数据已经无法再提交到后台了!!!!!
ADOQuery1.Connection.BeginTrans
......