2010-05-27 56 views
3

我使用传统的ASP和SQL Server 2005ASP SQL错误处理

这是代码的工作(通过堆栈溢出的其他成员提供):

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

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

任何人有任何想法纠正这一点?

非常感谢, 乔尔

回答

2

因为VBScript不支持On Error GoTo <label>处理你就会有如果你正在使用JScript中你必须的try/catch可使用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 

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 
+0

很多谢谢,作品一种享受。 – 2010-05-27 10:52:59