AdoQuery1的LockType设置成ltBatchOptimistic,数据提交失败时,AdoQuery的记录状态(是否已更改过)回不到提交前的状态,
如:表有主键约束,插入重复记录时,数据回滚后就发生这种情况,用CancelBatch(arAllChapters)也得不到原来(提交前)的数据代码如下:
ADOConnection1.BeginTrans;
try
AdoQuery1.UpdateBatch(arAllChapters);
ADOConnection1.CommitTrans;
Application.MessageBox('数据保存成功。','提示',MB_OK+MB_ICONINFORMATION);
except
ADOConnection1.RollbackTrans;
Application.MessageBox('数据保存失败。','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
如:表有主键约束,插入重复记录时,数据回滚后就发生这种情况,用CancelBatch(arAllChapters)也得不到原来(提交前)的数据代码如下:
ADOConnection1.BeginTrans;
try
AdoQuery1.UpdateBatch(arAllChapters);
ADOConnection1.CommitTrans;
Application.MessageBox('数据保存成功。','提示',MB_OK+MB_ICONINFORMATION);
except
ADOConnection1.RollbackTrans;
Application.MessageBox('数据保存失败。','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
解决方案 »
- 一个串口通讯DLL,如何在一个函数中将发送指令和输出返回结果?
- Delphi 文本框中输入中文自动转换为拼音简码和五笔简码
- C++代码转Pascal过程中遇到pascal的关键字怎么办?
- 把一个文件的二进制流存为一个二进制文件。如何做呢?
- delphi三层结构模式下,如何在登陆socket时候要求用户和密码验证?
- ????用Sakemail发邮件后,客户收到的附件名称是乱码!而邮件附件另存为别的名字后也能正常打开,并且邮件内容和邮件标题都正常的,真是奇怪!!
- 造字的问题!
- 各位晚上好,由于最近很忙,好久没光顾了,向大家问好!
- 控件安装问题,请各位高手指点……
- 紧急求教
- delphi 的拖拽事件怎么写?
- delphi调用dll
ADOConnection1.BeginTrans;
try
AdoQuery1.UpdateBatch(arAllChapters);
except
ADOConnection1.RollbackTrans;
Application.MessageBox('数据保存失败。','提示',MB_OK+MB_ICONINFORMATION);
exit;
end; ADOConnection1.CommitTrans;
Application.MessageBox('数据保存成功。','提示',MB_OK+MB_ICONINFORMATION);