2

在经典 ASP 中,如果页面遇到未捕获的异常并在提交/回滚之前停止,连接事务会发生什么情况?

例如:

conn.BeginTrans

a = 0 / 0

conn.CommitTrans

看到事务正在进行中,它会被中止还是提交?或者当它返回到连接池时,连接是否会维护事务?

4

1 回答 1

3

要返回连接池,应将连接隐式或显式视为已关闭。任何在连接关闭时挂起的事务都将回滚。

但是,当连接被认为是活动的时,数据库中获取的资源/锁仍将被维护。

编辑 - 来自影子向导(谢谢)相对于 ADO 连接对象的信息:这里

在连接上有打开的 Recordset 对象时关闭 Connection 对象会回滚所有 Recordset 对象中的任何未决更改。在事务进行时显式关闭 Connection 对象(调用 Close 方法)会产生错误。如果在事务进行时 Connection 对象超出范围,ADO 会自动回滚事务

于 2013-11-15T10:24:16.357 回答