在经典 ASP 中,如果页面遇到未捕获的异常并在提交/回滚之前停止,连接事务会发生什么情况?
例如:
conn.BeginTrans
a = 0 / 0
conn.CommitTrans
看到事务正在进行中,它会被中止还是提交?或者当它返回到连接池时,连接是否会维护事务?
在经典 ASP 中,如果页面遇到未捕获的异常并在提交/回滚之前停止,连接事务会发生什么情况?
例如:
conn.BeginTrans
a = 0 / 0
conn.CommitTrans
看到事务正在进行中,它会被中止还是提交?或者当它返回到连接池时,连接是否会维护事务?
要返回连接池,应将连接隐式或显式视为已关闭。任何在连接关闭时挂起的事务都将回滚。
但是,当连接被认为是活动的时,数据库中获取的资源/锁仍将被维护。
编辑 - 来自影子向导(谢谢)相对于 ADO 连接对象的信息:这里
在连接上有打开的 Recordset 对象时关闭 Connection 对象会回滚所有 Recordset 对象中的任何未决更改。在事务进行时显式关闭 Connection 对象(调用 Close 方法)会产生错误。如果在事务进行时 Connection 对象超出范围,ADO 会自动回滚事务