当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在MsSql、Access两种数据库中插入记录后马上得到自动编号的ID值

ASP
asp取动态表单中数据并写入xml文件,用xsl显示
一个非常简单的将半角转换为中文的函数
Jmail发邮件的例子
ASP常用的几个功能模块
改进性能和样式的 24个 ASP 技巧
给blog加上运行代码功能
关于静态页生成问题 突破form数量限制
UTF-8编码
utf-8编码转换成gb2312
Utf-8和Gb2312乱码问题的终结
UTF-8转GB2312函数
防止网站内容被小偷采集的ASP代码
ASP中过滤UBB和Html标签
在线数据库管理工具(db007) v1.5
Response.Flush的使用心得
域名查询系统用到的类
检测函数 asp class
利用ASP规划聊天室
聊天室实现私聊
多域名绑定到一个空间访问不同首页的技巧

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 67 ::
收藏到网摘: n/a

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