与ADO一起使用时,SQL查询无法正常工作

时间:2014-02-08 23:51:30

标签: sql syntax vbscript ado

我正在尝试学习如何使用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)

2 个答案:

答案 0 :(得分:2)

insertselect作为两个单独的命令运行。或者,如果您的数据库支持它,请运行一个立即返回新ID的语句(如insertreturning 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;"