2013-12-10 97 views
0

這是我在stackoverflow上的第一個問題,我希望有人能幫助我。聲明sql和會話的預期結束

我正在製作一個類似於facebook的網站。 繼承人我的SQL。

readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == '"session("ID")"'" 

和繼承人的錯誤即時得到

微軟VBScript編譯錯誤 '800a0401'

預計語句的結束

/student/S0215538/newsfeed1.asp,行22

readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == ' "session("ID")" ' " 
--------------------------------------------------------------------------------------------------------------^ 

我不明白爲什麼我得到這個錯誤,如果我注意到在哪裏,它的作品,但它不是我所需要的。

在此先感謝

謝謝大家,那很快。 我總是忘記&,提到==的人應該是=,你也是對的。 它修復了這個錯誤,但是現在我在這一行中有一個新的錯誤,說「條件表達式中的數據類型不匹配」post.Open readsql, connection, adOpenkeyset, AdLockOptimistic 「post」是我的記錄集,「connection」是adodb連接。

回答

0

需要被

readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID = '" & session("ID") & "'" 

問題是你的語法,字符串需要用雙引號"終止,並用符號&正確VBScript中串聯。按照RedFilter的建議,刪除==並替換爲=

1

字符串連接需要&

readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID = '" & session("ID") & "'" 

在你的查詢還只能使用一個=

0

嘗試

readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID = '" & session("ID") & "'" 
0

您需要連接(&)變量會話( 「ID」)到字符串:

>> set session = CreateObject("Scripting.Dictionary") 
>> session("ID") = "whatever" 
>> readsql = "SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == 
'" & session("ID") & "'" 
>> WScript.Echo readsql 
>> 
SELECT * FROM post INNER JOIN ubuser ON (post.pos_USERID = ubuser.usr_ID) WHERE ubuser.usr_ID == 'whatever' 
>> 

(你確定你的DBMS」 SQL方言使用「 ==「用於比較?)

+0

他正在使用[tag:asp-classic]他設置的ID來自'ASPSession'對象。 – Lankymart

+0

@Lankymart - 是的,我僞造會話對象使用字典得到一個可執行的代碼片段 –

+0

我意識到,我只是認爲你更可能混淆OP這樣做,因爲他會試圖實現你的代碼,除非它是清楚它只是一個測試用例,所以你可以親自執行他的代碼。 – Lankymart