在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 属性始终有效 。 |