delphi执行多条SQL语句不抛出异常 自己解决了...用了ADOQUERY1.CONNECTION.BEGINTRANS COMMITTRANS 哈哈 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BEGINTRANS COMMITTRANS 不叫“不抛出异常”这叫事务,事务中包裹的代码如果出现异常就会回滚,以保证如果提交sql时部分失败或导致异常时恢复数据到修改前的状态以保证一致性。 接分~~~~~~~~事物。不过ADO的事物能起作用? try Connection.StartTransaction; ExecSQL; Connection.Commit; except on E: Exception do begin if Connection.InTransaction then Connection.Rollback; bFlag := False; MsgBox(PWideChar(WideString('对数据库执行更改操作发生错误:' + #13 + e.Message + #13 + ', 为了数据安全,已经回滚到操作更改前状态,请关闭工具后稍后重试!')), '错误', MB_OK + MB_USERICON, 2, MB_ICONHAND); end; end; 测试... 关于在实现放大或缩小图象时的奇怪问题,谢谢 关于网格嵌套问题, please come in------------- juliens(星星球) 100 求一简单NT服务程序 wks过来领分 讨论Delphi中得Com组件 任何实现IE地址栏中输入文字后的效果 delphi中使用sql存储、编辑word和excel问题 纯Delphi IDE问题. advstringgrid问题 急求解决! 高分求解决方法!!!
这叫事务,事务中包裹的代码如果出现异常就会回滚,以保证如果提交sql时部分失败或导致异常时恢复数据到修改前的状态以保证一致性。
Connection.StartTransaction;
ExecSQL;
Connection.Commit;
except on E: Exception do
begin
if Connection.InTransaction then
Connection.Rollback;
bFlag := False;
MsgBox(PWideChar(WideString('对数据库执行更改操作发生错误:' + #13 + e.Message + #13 + ', 为了数据安全,已经回滚到操作更改前状态,请关闭工具后稍后重试!')), '错误', MB_OK + MB_USERICON, 2, MB_ICONHAND);
end;
end;