关于AdoConnection 事务 存储过程

ahpei 2009-09-11 07:03:34
伪代码如下:

try
AdoConnection.BeginTrans; //开启事务
adoquery1.Exec(存储过程); //用adoquery1执行存储过程
adoquery2.Post; //提交adoquery2
AdoConnection.CommitTrans; //提交事务
except
AdoConnection.RollbackTrans; //回滚事务
end;


问题:存储过程内没有使用事务,为3句update语句。
如果存储过程内部出现错误,则以上代码是执行成功,还是回滚?
...全文
83 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
THE_ROCK 2009-09-11
  • 打赏
  • 举报
回复
同意4楼观点!
wxsan 2009-09-11
  • 打赏
  • 举报
回复
楼主为什么不把事务写在存储过程里呢,如果一定需要使用你这样的写法,你可以试一下,提供一个思路:
把存储过程里的一个字段故意写过,让存储过程报错,看程序的事务是否可以。
火龙岛主 2009-09-11
  • 打赏
  • 举报
回复
SQLServer不支持多个事务嵌套,因此当出现错误的时候会报告事务不能嵌套使用。
楼主这种情况,还需要亲自验证一下!
Monkey_D_Luffy 2009-09-11
  • 打赏
  • 举报
回复
帮顶一下,希望难题尽快解决
tgbd 2009-09-11
  • 打赏
  • 举报
回复
//最好这样
AdoConnection.BeginTrans; //开启事务

try
adoquery1.Exec(存储过程); //用adoquery1执行存储过程
adoquery2.Post; //提交adoquery2
AdoConnection.CommitTrans; //提交事务
except
AdoConnection.RollbackTrans; //回滚事务
end;
tgbd 2009-09-11
  • 打赏
  • 举报
回复
回滚.
你可以做个试验就很清楚了。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧