【问题标题】:ASP SQL Error HandlingASP SQL 错误处理
【发布时间】:2010-05-27 09:01:22
【问题描述】:

我使用的是 Classic asp 和 SQL Server 2005。

这是有效的代码(由 Stack Overflow 的另一位成员提供):

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

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

有没有人想办法解决这个问题?

非常感谢, 乔尔

【问题讨论】:

    标签: sql-server-2005 asp-classic


    【解决方案1】:

    由于 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。

    【讨论】:

      【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 2016-05-30
        • 2010-09-27
        相关资源
        最近更新 更多