2014-02-08 35 views
1

我在學習如何使用ADO來操縱數據庫,所以我意識到這是一個非常基本的問題,但我仍然需要幫助。 我跑在SQL查詢分析器的查詢,它執行得很好:sql查詢不能與ADO一起使用

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)

回答

1

您需要預約(和一個前經過空間的):

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;" 
2

運行insertselect作爲兩個單獨的命令。或者,如果您的數據庫支持它,請運行立即返回新ID的語句(如insertreturning into)。