asp-classic - 在经典 ASP 中运行 ADO 事务时使用什么错误模式?

标签 asp-classic transactions vbscript ado

我在经典的 ASP 页面中使用 ADO 和 VBScript 运行数据库事务,这涉及对连接对象的 Execute 方法的多次调用(即 conn.Execute)。 我发现我需要在我的页面顶部设置“On Error Resume Next”,这样当任何事务调用(即 conn.Execute )失败时,我可以使用回滚代码跟随它。 即使我的经典 ASP 页面中的错误模式是“On Error GoTo 0”而不是“On Error Resume Next”,我也可以运行 ADO 事务吗? 回滚事务的示例代码如下。

'Rollback transaction if a previous conn.Execute fails
if err.Number <> 0 then
    if tranCount = 1 then
       conn.RollbackTran
       tranCount = 0
    end if
end if

最佳答案

有趣的问题! 我通常不从经典 ASP 执行数据库事务,所以我不确定 conn.Errors 是否会在 ASP 脚本之前捕获错误。但你至少可以尝试...

IF conn.Errors.Count > 0 THEN
    response.write "whoops"
END IF

否则它可能会帮助您了解 On Error Resume Next 仅在当前范围内有效。 (见下面的代码)

<%
    response.write "start"
    BadFunction()
    response.write "middle"  '//<--- This will be printed

    dim b : b = 8 / 0  '//Division by zero

    response.write "end"    '//<-- This will NOT be printed!




    Function BadFunction()
        On Error Resume Next
        dim a : a = 9 / 0  '//Division by zero

        BadFunction = a
    End function


%>

关于asp-classic - 在经典 ASP 中运行 ADO 事务时使用什么错误模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865541/

相关文章:

javascript - 在页面加载时创建文本框和插入数据

mysql - 单个更新查询所需的事务?

java - Spring hibernate 锁是否适用于不同机器上的其他线程?

vbscript - vbs 通过双击运行,从任务计划程序运行时卡住

audio - 当 msgbox 出现时从 VBScript 中播放声音文件

vba - vb 脚本到 javascript

tomcat - 如何在 ASP 中正确读取 Tomcat 的带引号值的 cookie?

javascript - XML 保存到文件 Javascript asp

asp-classic - 在包含文件中创建对象时出现 asp 错误 '800706be'

android - SQLite 事务与 Google IO REST 模式的 ContentProvider?