2011-06-22 61 views
0

我想使用下面的sql字符串返回特定列的值,如果我將其更改爲sql = "select * from a_page"objRS("P_description")它會返回值,但由於某種原因,我的頁面在使用下面的代碼。經典的asp記錄集權限問題

更新:我關閉錯誤恢復下一個和我收到的錯誤是選擇權限被拒絕。我將如何讓自己的權限與下面的代碼?

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

問題1:P_Description的值是否包含特殊字符,如<, >,&,可能會被解釋爲HTML?問題2:你的腳本中是否使用「On Error Resume Next」?如果是,那麼如果您將該行註釋掉,則可能會得到更好的錯誤消息。 – 2011-06-22 06:44:10

+0

我會看看謝謝 –

+0

p_description確實包含下劃線,但多數民衆贊成 –

回答

1

你得到的錯誤,再加上你提到的工作意味着一件事代碼:在任L_PagePermission表或A_Permission(或兩者)的用戶在連接字符串中傳遞沒有讀取權限。

要解決這個問題,您必須在連接字符串中傳遞「更強」的用戶,或者通過類似SQL Management Studio的方式向這些表上的用戶授予讀取權限。

順便說一下,由於明顯的安全原因,您無法通過代碼「授予您自己的權限」 - 權限是爲了防止代碼首先執行某些操作。