我正在尝试使用以下sql字符串返回特定列的值,如果我将其更改为sql = "select * from a_page"
和objRS("P_description")
,则返回值但由于某种原因我的页面将不会加载使用以下代码时。
更新:我在接下来的错误恢复时关闭,我收到的错误是选择权限被拒绝。我如何使用以下代码给自己的权限?
SQL = "select P_Name as P_Name, P_Description as P_Description from L_PagePermission inner join A_Permission on p_permissionID = pp_PermissionID inner join A_Page on P_PageID = PP_PageID where P_PageID = 84 order by p_Name"
Page_ID = 84
connectionstring = obj_ADO.getconnectionstring
Set objCon = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
objCon.Open connectionstring
SQL = "select P_Name as P_Name, P_Description as P_Description from L_PagePermission inner join A_Permission on p_permissionID = pp_PermissionID inner join A_Page on P_PageID = PP_PageID where P_PageID = 84 order by p_Name"
objRS.open SQL, objCon
objRS.MoveFirst
while not objRS.EOF
response.Write objRS("P_Name")
objRS.MoveNext
wend
objRS.close
objCon.close
答案 0 :(得分:1)
您获得的错误加上您提到的代码工作意味着一件事:在L_PagePermission
表或A_Permission
(或两者)上,传入连接字符串的用户没有读取权限。< / p>
要解决此问题,您必须在连接字符串中传递“更强”的用户,或者通过SQL Management Studio之类的方式通过这些表向用户授予读取权限。
顺便说一句,由于明显的安全原因,您无法通过代码“授予自己权限” - 存在权限以防止代码首先执行某些操作。