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

2016-02-19 11:15 57 1 收藏

下面是个在MsSql、Access两种数据库中插入记录后马上得到自动编号的ID值教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

本编文章将要介绍重点解释如何在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 属性始终有效。 

来源:https://www.tulaoshi.com/n/20160219/1596885.html

延伸阅读
标签: ASP
在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了。而对于小型的数据库应用需求,微软的Access数据库,应该是与ASP程序配套使用的首选。由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式...
通过企业管理器设置数据库的定期自动备份计划。 1、打开企业管理器,双击打开你的服务器 2、然后点上面菜单中的工具--选择数据库维护计划器 3、下一步选择要进行自动备份的数据--下一步更新数据优化信息,这里一般不用做选择--下一步检查数据完整性,也一般不选择 4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择备份的...
标签: SQLServer
  目前只知道三种数据库 实现这个功能! mysql:select * from table limit 10 ORACLE:select * from table where rowid<10 msSQL:select top 10 from table  
标签: ASP
如果你使用存储过程的话,将非常简单,代码如下:SET @NewID=@@IDENTITY 说明: 在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个...
在VB编程中通常要与数据库打交道,对于数据量较小的应用,一般选用Access作为数据库,因为Access数据库比较简单,功能也比较齐全,数据的备份、拷贝都很方便,且程序发布时不需要额外单独安装其它的数据库管理软件。因此,在功能能够满足要求的条件下,Access数据库往往成为一些小型数据库软件的首选。 关于用VB操作Access库表的方法有...

经验教程

206

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部