在MsSql、Access兩種數據庫中插入記錄后馬上得到自動編號的ID值
2024-05-04 11:03:09
供稿:網友
本編文章將要介紹重點解釋如何在Ms Sql Server中更新或添加一條記錄后立即得到其標識列的值,這個值在ACCESS就是我們熟知的自動編號的
ID值,好了,閑話不多說,代碼我也不多寫,只寫關鍵些,相信各位高手一看就明白,呵呵。后面也附帶了在ACCESS中獲取的方法,雖然在ACCESS
中獲取自動編號的文章網上雖然很多,但放在此做為一個總結吧。
Set testRs=Server.CreateObject("ADODB.RecordSet") '創建要測試的對象
testRs.Open "[TestTable] ",Conn,1,2 '假定開始已經創建Conn,并且數據庫已經連接
testRs.AddNew
testRs(”ColName1”)=”ColName1”
testRs(”ColName2”)=”ColName2”
......
testRs(”ColNameN”)=”ColNameN”
testRs.Update '調用Update方法立即將內存中數據寫入數據庫中,下面這句是關鍵的
testRs.MoveLast '將記錄移動最后一條
ID=testRs(”ID”) '這樣就可以立即得到剛才這個新記錄的自動編號了
最后不要忘記關閉對象
testRs.Close:Set testRs= Nothing
呵呵,以上方法我已經在Windows 2000 Server Sp4 + Ms SQL Server + Asp/VB/DELPHI等都測試過,都是可行的。因為本篇文章是針對有些基礎的人閱讀的,故上面的代碼不可直接運行,如各位對上面的代碼有何疑問,請與我聯系QQ:115269,或者上我的網站來娛樂娛樂:http://www.772.cn/
下面轉貼出如何如何在Access數據庫中插入記錄后馬上得到自動編號的ID值
首先須保證獲得記錄集的方式支持bookmark屬性,如1,3
插入一條帶自動編號字段的記錄后,獲取該記錄的bookmark屬性值
temp = rs.bookmark
然后
rs.bookmark = temp
試試??!
Response.write rs("ID").
順便解釋下BookMark是一個什么屬性,因為現在網上有文章對此的解釋有點歧義:)
返回唯一標識 Recordset 對象中當前記錄的書簽(我們在ACCESS添加一個新記錄后就可通過這個屬性返回他的自動編號了),或者將 Recordset 對象的當前記錄設置為由有效書簽所標識的記錄。
設置和返回值
設置或返回計算有效書簽的變體型表達式。
說明
使用 Bookmark 屬性可保存當前記錄的位置并隨時返回到該記錄。書簽只能在支持書簽功能的 Recordset 對象中使用。
打開 Recordset 對象時,其每個記錄都有唯一的書簽。要保存當前記錄的書簽,請將 Bookmark 屬性的值賦給一個變量。移動到其他記錄后要快速返回到該記錄,請將該 Recordset 對象的 Bookmark 屬性設置為該變量的值。
用戶可能無法查看書簽的值,也同樣無法對書簽直接進行比較(指向同一記錄的兩個書簽的值可能不同)。