我正在使用Classic asp和SQL Server 2005.
这是可行的代码(由Stack Overflow的另一个成员提供):
sqlStr = "USE "&databaseNameRecordSet.Fields.Item("name")&";SELECT permission_name FROM fn_my_permissions(null, 'database')"
此代码检查我对给定数据库的权限 - 问题是 - 如果我没有权限它会抛出错误并且不会继续绘制我的页面的其余部分。
有人对此有任何补救措施吗?
非常感谢, 乔尔
答案 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