语句sql和会话的预期结束

时间:2013-12-10 15:45:07

标签: sql sql-server session vbscript asp-classic

这是我关于stackoverflow的第一个问题,我希望有人可以帮助我。

我正在创建一个类似于facebook的网站。 继承人我的sql。

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

并且接下来的错误

  

Microsoft 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")" ' "
--------------------------------------------------------------------------------------------------------------^

我无法理解为什么我会收到此错误,如果我将WHERE注释掉,那就可以了,但它不是我需要的。

提前致谢

谢谢大家,这很快。 我总是忘记&,并且那些提到==的人应该=,你也是对的。 它修复了这个错误,但是我现在在这一行post.Open readsql, connection, adOpenkeyset, AdLockOptimistic中有一个新的错误,说“标准表达式中的数据类型不匹配” “post”是我的记录集,“connection”是adodb连接。

4 个答案:

答案 0 :(得分:1)

需要字符串连接&

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

在查询中也只使用一个=

答案 1 :(得分:0)

需要

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

问题是你的语法,字符串需要用双引号"终止,并在VBScript中使用&符号&正确连接。同时删除==并使用=替换为RedFilter建议。

答案 2 :(得分:0)

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

答案 3 :(得分: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方言使用“==”进行比较吗?)