现在有两个表,一个是主表,一个是从表。
现在点保存时,同时保存两个表中数据,要是其中一个表中的数据保存失败,那么第二个表也不给予保存。
代码如下:
adoquery.LockType:=ltOptimistic;
adoquerychild.LockType:=ltOptimistic;
TRY
if not adoconnection1.InTransaction then
adoconnection1.BeginTrans
adoquery.UpdateBatch();
adoquerychild.UpdateBatch();
adoconnection1.CommitTrans;
EXCEPT
showmessage('保存失败');
END;问题如下:
当adoquery.UpdateBatch();保存成功
adoquerychild.UpdateBatch();保存失败
那么adoquery改的数据都没了,恢复到数据库中的数据。不知道什么原因造成的。
现在点保存时,同时保存两个表中数据,要是其中一个表中的数据保存失败,那么第二个表也不给予保存。
代码如下:
adoquery.LockType:=ltOptimistic;
adoquerychild.LockType:=ltOptimistic;
TRY
if not adoconnection1.InTransaction then
adoconnection1.BeginTrans
adoquery.UpdateBatch();
adoquerychild.UpdateBatch();
adoconnection1.CommitTrans;
EXCEPT
showmessage('保存失败');
END;问题如下:
当adoquery.UpdateBatch();保存成功
adoquerychild.UpdateBatch();保存失败
那么adoquery改的数据都没了,恢复到数据库中的数据。不知道什么原因造成的。
解决方案 »
- 1.sql2000 的连接属于tcp? 2.如何测试本机SocketServer可以建立多少tcp连接?(用clientsocket和socketserver写的网络通讯程序)
- [求助]帮帮我吧
- 大家帮忙看看.在线急等
- (50分求助)求助:如何用C\C++编写modem自动安装程序?
- 如何得到文件的后缀名????
- 我用ADO连接Oracle出现CPU错误,而连其它类型数据库却没有出错
- 该如何动态创建PageControl的子页TabSheet,急!
- 一个奇怪的问题:OpenMutex不能正确找到CreatMutex创建的标志?
- 计算字段的问题,求救
- 关于email发送邮件的错误
- 这个调用过程的参数如何定义?
- 一个窗体的数据怎么传给另一个窗体
adoconnection1.ROLLBACK; //事务回滚
showmessage('保存失败');END;
出错没有加事务回滚
EXCEPT
adoconnection1.ROLLBACKTRANS; //事务回滚
showmessage('保存失败');
END;
try exec(sl1);
exec(sl2)
CommitTrans
except
rollbacktrans;
end;
更回滚了,我是退出才回滚啊
post就行
不用updatebatch
try
adoconnection1.begintrans; //开始事务
......
adoconnection1.committrans;//完成事务
except
adoconnection1.rollback; //一旦失败,回滚,保证数据一致
end;