2010-06-16 74 views
0
中插入的數據

它在ASP Classic中。 MS-Access數據庫。SQL SELECT從表

我做的:INSERT INTO Orders (userId) VALUES (123)"

我想要檢索是從該行orderNumber。它是一個自動增量編號。

,所以我所做的:SELECT orderNumber FROM Orders WHERE userId=123

但既然是在同一頁上,在SELECT返回:BOF或EOF爲True,或者當前的記錄已被刪除。請求的操作需要當前記錄。

我在什麼地方見過RETURNING orderNumber as variable,但它是爲Oracle和我不知道如何落實到我的ASP :(

set addOrder = Server.CreateObject("ADODB.Command") 
     addOrder.ActiveConnection = MM_KerenDB_STRING 
     addOrder.CommandText = "INSERT INTO Orders (userId) VALUES ("&userId&")" 
     addOrder.CommandType = 1 
     addOrder.CommandTimeout = 0 
     addOrder.Prepared = true 
     addOrder.Execute() 

Dim getOrderNumber 
Set getOrderNumber = Server.CreateObject("ADODB.Recordset") 
     getOrderNumber.ActiveConnection = MM_KerenDB_STRING 
     getOrderNumber.Source = "SELECT orderNumber FROM Orders WHERE userId=" & userId 
     getOrderNumber.CursorType = 0 
     getOrderNumber.CursorLocation = 2 
     getOrderNumber.LockType = 1 
     getOrderNumber.Open() 

        session("orderNumber") = getOrderNumber.Fields.Item("orderNumber").value 
+0

我們可以看到一些用於實際運行SQL語句的ASP代碼嗎? – 2010-06-16 22:17:22

+0

對不起,我假設(錯誤)它是不相關的 – 2010-06-16 22:21:01

+0

第一條語句是否實際上將數據輸入到表中?我想確保這不是第一個陳述的問題。所以當你運行頁面並得到錯誤時,你的訪問數據庫中是否有數據? – 2010-06-16 22:33:01

回答

1

下,如果你正在使用他們的加入方法可能會有所幫助使用ADO對象的記錄。

http://support.microsoft.com/kb/221931

但沒有實際看到你經典的ASP代碼,它是很難給你一個合適的回答。

+0

由於一些奇怪的原因,我的代碼看起來完全不同於你指出的鏈接..:/我覺得愚蠢..那是什麼maccromedia給了我..我可以做得更好嗎? :) – 2010-06-16 22:28:04

+0

@Noam在經典ASP中使用數據有多種方式。您可以使用ADODB.Command對象插入/刪除/更新/選擇記錄,也可以使用ADODB.RecordSet對象執行相同的操作。 Macromedia似乎使用命令插入和記錄集進行選擇。請注意,當您使用命令選擇您仍然獲取記錄集時。 – 2010-06-16 22:44:17

+0

我做了什麼在你的鏈接,它的工作:)因爲我一直討厭macromedia這樣做對我來說,我認爲它的時間我真的得到更多瞭解什麼代碼實際上做。你能指出我在哪裏可以讀到嗎?以及命令和記錄集之間的區別。 – 2010-06-16 22:49:23