ASP SQL错误处理

时间:2010-05-27 09:01:22

标签: sql-server-2005 asp-classic

我正在使用Classic asp和SQL Server 2005.

这是可行的代码(由Stack Overflow的另一个成员提供):

 sqlStr = "USE "&databaseNameRecordSet.Fields.Item("name")&";SELECT permission_name FROM fn_my_permissions(null, 'database')"

此代码检查我对给定数据库的权限 - 问题是 - 如果我没有权限它会抛出错误并且不会继续绘制我的页面的其余部分。

有人对此有任何补救措施吗?

非常感谢, 乔尔

2 个答案:

答案 0 :(得分:2)

由于VBScript不支持On Error GoTo <label>处理,因此您必须使用On Error Resume Next

hasPermission = CheckPermission()

Function CheckPermission()
    On Error Resume Next
    '--- here goes your database query

    If Err.Number = 0 Then
        CheckPermission = True
    Else
        CheckPermission = False
    End If
End Function

如果您使用的是JScript,则可以使用try / catch。

答案 1 :(得分:2)

自从我编写任何ASP以来,很长一段时间,但是一条路线就是处理错误。您可以将任何错误视为不允许的结果,或者最好只处理针对此情况返回的错误代码。

On Error Resume Next

sqlStr = "USE "&databaseNameRecordSet.Fields.Item("name")&";SELECT permission_name FROM fn_my_permissions(null, 'database')"

rs.Open sqlStr, connection

If Err.Number <> 0 Then
    Response.Write "No Permissions"
Else
    ' Your code to display or process permissions
End If

On Error Goto 0