我試圖避免在我的web應用程序中使用直接的SQL查詢。我環顧四周,得出的結論是,ADO Recordset
將是最好的或至少是最安全的工具。我需要將記錄插入到數據庫表中。不幸的是,我不知道如何獲得剛剛插入的記錄的身份值。這裏有一個下降的什麼,我現在得到:如何從此ADODB.Recordset獲取插入ID?
<%
dim insertID, rs
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "my_table_name", conn, adOpenForwardOnly, adLockOptimistic
rs.AddNew()
Call m_map_values_to_rs(rs)
rs.Update()
insertID = rs("id")
rs.Close()
rs = Nothing
%>
我已經成功插入記錄的代碼,但我不能爲我的生活弄清楚如何獲得Recordset
的ID字段插入後更新。我怎樣才能從這個Recordset
回到身份列值?
UPDATE - 下面是關於上述代碼的解決方案。
我必須將光標類型更改爲adOpenKeyset
而不是adOpenForwardOnly
。在完成此操作後,記錄會在插入後自動更新爲「自動編號」字段的新值。但它是不是你認爲它是什麼。 rs("id")
的值不會變成整數或變體。它成爲某種Automation
類型,不能評估爲一個數字。出於某種原因,CInt()也不能直接用於該類型。所以你必須做的是將該值轉換爲字符串,然後將其轉換爲Int
。以下是我如何管理的:
insertID = CInt(rs("id") & "")
感謝Dee的回答。它非常有幫助。
感謝更新 - 這是有價值的信息 – Dee 2011-04-04 17:51:58
舊線,但RS(「ID」)是一個Field對象。你應該可以得到rs(「id」)。值 – alfadog67 2016-03-17 18:41:33