在MsSql、Access两种数据库中插入记录后马上得到自动编号的ID值


本编文章将要介绍重点解释如何在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 属性设置为该变量的值 。

用户可能无法查看书签的值,也同样无法对书签直接进行比较(指向同一记录的两个书签的值可能不同) 。

如果使用 Clone 方法创建 Recordset 的一个副本,则原始的和复制的 Recordset 对象 Bookmark 属性设置相同并可以替换使用 。但是,无法替换使用不同 Recordset 对象的书签,即使这些书签是通过同一数据源或命令创建的 。

远程数据服务用法 在客户端 (ADOR) Recordset 对象上使用时,Bookmark 属性始终有效 。