在MsSql、Access兩種數(shù)據(jù)庫中插入記錄后馬上得到自動編號的ID值
更新時間:2006年07月08日 00:00:00 作者:
本編文章將要介紹重點解釋如何在Ms Sql Server中更新或添加一條記錄后立即得到其標(biāo)識列的值,這個值在ACCESS就是我們熟知的自動編號的
ID值,好了,閑話不多說,代碼我也不多寫,只寫關(guān)鍵些,相信各位高手一看就明白,呵呵。后面也附帶了在ACCESS中獲取的方法,雖然在ACCESS
中獲取自動編號的文章網(wǎng)上雖然很多,但放在此做為一個總結(jié)吧。
Set testRs=Server.CreateObject("ADODB.RecordSet") '創(chuàng)建要測試的對象
testRs.Open "[TestTable] ",Conn,1,2 '假定開始已經(jīng)創(chuàng)建Conn,并且數(shù)據(jù)庫已經(jīng)連接
testRs.AddNew
testRs(”ColName1”)=”ColName1”
testRs(”ColName2”)=”ColName2”
......
testRs(”ColNameN”)=”ColNameN”
testRs.Update '調(diào)用Update方法立即將內(nèi)存中數(shù)據(jù)寫入數(shù)據(jù)庫中,下面這句是關(guān)鍵的
testRs.MoveLast '將記錄移動最后一條
ID=testRs(”ID”) '這樣就可以立即得到剛才這個新記錄的自動編號了
最后不要忘記關(guān)閉對象
testRs.Close:Set testRs= Nothing
呵呵,以上方法我已經(jīng)在Windows 2000 Server Sp4 + Ms SQL Server + Asp/VB/DELPHI等都測試過,都是可行的。因為本篇文章是針對有些基礎(chǔ)的人閱讀的,故上面的代碼不可直接運行,如各位對上面的代碼有何疑問,請與我聯(lián)系QQ:115269,或者上我的網(wǎng)站來娛樂娛樂:http://www.772.cn/
下面轉(zhuǎn)貼出如何如何在Access數(shù)據(jù)庫中插入記錄后馬上得到自動編號的ID值
首先須保證獲得記錄集的方式支持bookmark屬性,如1,3
插入一條帶自動編號字段的記錄后,獲取該記錄的bookmark屬性值
temp = rs.bookmark
然后
rs.bookmark = temp
試試??!
Response.write rs("ID").
順便解釋下BookMark是一個什么屬性,因為現(xiàn)在網(wǎng)上有文章對此的解釋有點歧義:)
返回唯一標(biāo)識 Recordset 對象中當(dāng)前記錄的書簽(我們在ACCESS添加一個新記錄后就可通過這個屬性返回他的自動編號了),或者將 Recordset 對象的當(dāng)前記錄設(shè)置為由有效書簽所標(biāo)識的記錄。
設(shè)置和返回值
設(shè)置或返回計算有效書簽的變體型表達(dá)式。
說明
使用 Bookmark 屬性可保存當(dāng)前記錄的位置并隨時返回到該記錄。書簽只能在支持書簽功能的 Recordset 對象中使用。
打開 Recordset 對象時,其每個記錄都有唯一的書簽。要保存當(dāng)前記錄的書簽,請將 Bookmark 屬性的值賦給一個變量。移動到其他記錄后要快速返回到該記錄,請將該 Recordset 對象的 Bookmark 屬性設(shè)置為該變量的值。
用戶可能無法查看書簽的值,也同樣無法對書簽直接進(jìn)行比較(指向同一記錄的兩個書簽的值可能不同)。
如果使用 Clone 方法創(chuàng)建 Recordset 的一個副本,則原始的和復(fù)制的 Recordset 對象 Bookmark 屬性設(shè)置相同并可以替換使用。但是,無法替換使用不同 Recordset 對象的書簽,即使這些書簽是通過同一數(shù)據(jù)源或命令創(chuàng)建的。
遠(yuǎn)程數(shù)據(jù)服務(wù)用法 在客戶端 (ADOR) Recordset 對象上使用時,Bookmark 屬性始終有效。
ID值,好了,閑話不多說,代碼我也不多寫,只寫關(guān)鍵些,相信各位高手一看就明白,呵呵。后面也附帶了在ACCESS中獲取的方法,雖然在ACCESS
中獲取自動編號的文章網(wǎng)上雖然很多,但放在此做為一個總結(jié)吧。
Set testRs=Server.CreateObject("ADODB.RecordSet") '創(chuàng)建要測試的對象
testRs.Open "[TestTable] ",Conn,1,2 '假定開始已經(jīng)創(chuàng)建Conn,并且數(shù)據(jù)庫已經(jīng)連接
testRs.AddNew
testRs(”ColName1”)=”ColName1”
testRs(”ColName2”)=”ColName2”
......
testRs(”ColNameN”)=”ColNameN”
testRs.Update '調(diào)用Update方法立即將內(nèi)存中數(shù)據(jù)寫入數(shù)據(jù)庫中,下面這句是關(guān)鍵的
testRs.MoveLast '將記錄移動最后一條
ID=testRs(”ID”) '這樣就可以立即得到剛才這個新記錄的自動編號了
最后不要忘記關(guān)閉對象
testRs.Close:Set testRs= Nothing
呵呵,以上方法我已經(jīng)在Windows 2000 Server Sp4 + Ms SQL Server + Asp/VB/DELPHI等都測試過,都是可行的。因為本篇文章是針對有些基礎(chǔ)的人閱讀的,故上面的代碼不可直接運行,如各位對上面的代碼有何疑問,請與我聯(lián)系QQ:115269,或者上我的網(wǎng)站來娛樂娛樂:http://www.772.cn/
下面轉(zhuǎn)貼出如何如何在Access數(shù)據(jù)庫中插入記錄后馬上得到自動編號的ID值
首先須保證獲得記錄集的方式支持bookmark屬性,如1,3
插入一條帶自動編號字段的記錄后,獲取該記錄的bookmark屬性值
temp = rs.bookmark
然后
rs.bookmark = temp
試試??!
Response.write rs("ID").
順便解釋下BookMark是一個什么屬性,因為現(xiàn)在網(wǎng)上有文章對此的解釋有點歧義:)
返回唯一標(biāo)識 Recordset 對象中當(dāng)前記錄的書簽(我們在ACCESS添加一個新記錄后就可通過這個屬性返回他的自動編號了),或者將 Recordset 對象的當(dāng)前記錄設(shè)置為由有效書簽所標(biāo)識的記錄。
設(shè)置和返回值
設(shè)置或返回計算有效書簽的變體型表達(dá)式。
說明
使用 Bookmark 屬性可保存當(dāng)前記錄的位置并隨時返回到該記錄。書簽只能在支持書簽功能的 Recordset 對象中使用。
打開 Recordset 對象時,其每個記錄都有唯一的書簽。要保存當(dāng)前記錄的書簽,請將 Bookmark 屬性的值賦給一個變量。移動到其他記錄后要快速返回到該記錄,請將該 Recordset 對象的 Bookmark 屬性設(shè)置為該變量的值。
用戶可能無法查看書簽的值,也同樣無法對書簽直接進(jìn)行比較(指向同一記錄的兩個書簽的值可能不同)。
如果使用 Clone 方法創(chuàng)建 Recordset 的一個副本,則原始的和復(fù)制的 Recordset 對象 Bookmark 屬性設(shè)置相同并可以替換使用。但是,無法替換使用不同 Recordset 對象的書簽,即使這些書簽是通過同一數(shù)據(jù)源或命令創(chuàng)建的。
遠(yuǎn)程數(shù)據(jù)服務(wù)用法 在客戶端 (ADOR) Recordset 對象上使用時,Bookmark 屬性始終有效。
相關(guān)文章
有效防止ASP木馬上傳運行—小知識[網(wǎng)絡(luò)安全技術(shù)]
前使用IIS服務(wù)器的站長很多,特別是對于ASP網(wǎng)站來說,防止ASP木馬成了網(wǎng)站安全最關(guān)鍵的內(nèi)容。2010-08-08

