我正在尝试学习如何使用ADO来操作数据库,所以我知道这是一个非常基本的问题,但我仍然需要帮助。 我在sql查询分析器中运行了一个查询,它执行得很好:
SELECT TOP 1 QuestionType FROM Questions
ORDER BY QuestionID DESC;
但是我试着把它放在我的ADO脚本中,我收到一个错误,查询不会完成。有人可以告诉我为什么吗? 再次,对不起,如果这只是一个简单的语法错误。 这是给出错误的脚本:
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Questions", conn
sql="INSERT INTO Questions(QuestionText, QuestionType)"
sql=sql & " VALUES "
sql=sql & "('" & qtext & "',"
sql=sql & "'" & "test" & "');"
sql=sql & "SELECT TOP 1 QuestionID FROM Questions"
sql=sql & "ORDER BY QuestionID DESC;"
on error resume next
conn.Execute sql,recaffected
if err<>0 then
Response.Write("An Error Has Occured")
else
Response.Write(rs(0))
end if
(该脚本只是在插入一些测试值后尝试检索最新的ID)
答案 0 :(得分:2)
将insert
和select
作为两个单独的命令运行。或者,如果您的数据库支持它,请运行一个立即返回新ID的语句(如insert
和returning into
)。
答案 1 :(得分:1)
在ORDER之前需要一个空格(并且在;之后需要一个空格):
sql="INSERT INTO Questions(QuestionText, QuestionType)"
sql=sql & " VALUES "
sql=sql & "('" & qtext & "',"
sql=sql & "'" & "test" & "'); "
sql=sql & "SELECT TOP 1 QuestionID FROM Questions"
sql=sql & " ORDER BY QuestionID DESC;"