2013-12-10 51 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