增加到数据库中后,如何得到新增加的记录的自动编号的值?

蓝色光芒 2006-06-26 09:57:44
如:
AQ = AdoQuery
表中ID为自动编号(SQL数据库)

代码如下:
AQ.Open "Softs_Sort",conn,1,3
AQ.AddNew
AQ("SortName")=i_SortName
AQ("ParentID")=i_ParentID
AQ("SortValue")=i_SortValue
AQ.Update
AQ.MoveLast
ID=AQ("ID") -->得到新增加的记录的ID值,不知道这样行得通不?
AQ.Close
...全文
268 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
slawdan 2006-06-26
  • 打赏
  • 举报
回复
AQ.Open "Softs_Sort",conn,1,3
AQ.AddNew
AQ("SortName")=i_SortName
AQ("ParentID")=i_ParentID
AQ("SortValue")=i_SortValue
AQ.Update
AQ.MoveLast
ID=AQ("ID") -->得到新增加的记录的ID值,不知道这样行得通不? 当然行不通!
AQ.Close

MoveLast之后个人感觉和select max(id)没啥两样~

ID=AQ("ID")
AQ.MoveLast
调换一下顺序吧
蓝色光芒 2006-06-26
  • 打赏
  • 举报
回复
TSD(因为有你而精彩)
谢谢你的好意,小声地说一句,别误导人为好。
TSD 2006-06-26
  • 打赏
  • 举报
回复
SELECT MAX(ID) FORM TABLE;
phuson 2006-06-26
  • 打赏
  • 举报
回复
这样执行没有问题,
我担心,在执行到
AQ.Update
AQ.MoveLast
时,其他地方也执行了增加操作,新的记录本增加进去了,
ID = AQ("ID")
取到的值就不对了,不知道对不对

=============这个问题有高手解释一下吗?
蓝色光芒 2006-06-26
  • 打赏
  • 举报
回复
@@IDENTITY
确实是正解,尤其是写到存储过程中,
那这里该怎么用ASP来表现@@IDENTITY呢?
dh20156 2006-06-26
  • 打赏
  • 举报
回复
参考:
在一个连接上针对 Northwind 数据库运行这些查询将返回一个名称为 Chalk 的新产品的 IDENTITY 值。所以,在使用 ADO 的 Visual Basic? 应用程序中,可以运行以下语句:

Set oRs = oCn.Execute("SET NOCOUNT ON;INSERT INTO Products _

(ProductName) VALUES ('Chalk');SELECT @@IDENTITY")

lProductID = oRs(0) 

  此代码告诉 SQL Server 不要返回查询的行计数,然后执行 INSERT 语句,并返回刚刚为这个新行创建的 IDENTITY 值。SET NOCOUNT ON 语句表示返回的记录集有一行和一列,其中包含了这个新的 IDENTITY 值。如果没有此语句,则会首先返回一个空的记录集(因为 INSERT 语句不返回任何数据),然后会返回第二个记录集,第二个记录集中包含 IDENTITY 值。这可能有些令人困惑,尤其是因为您从来就没有希望过 INSERT 会返回记录集。之所以会发生此情况,是因为 SQL Server 看到了这个行计数(即一行受到影响)并将其解释为表示一个记录集。因此,真正的数据被推回到了第二个记录集。当然您可以使用 ADO 中的 NextRecordset 方法获取此第二个记录集,但如果总能够首先返回该记录集且只返回该记录集,则会更方便,也更有效率。
dh20156 2006-06-26
  • 打赏
  • 举报
回复
SQL数据库用@@IDENTITY是正确的!
蓝色光芒 2006-06-26
  • 打赏
  • 举报
回复
这样执行没有问题,
我担心,在执行到
AQ.Update
AQ.MoveLast
时,其他地方也执行了增加操作,新的记录本增加进去了,
ID = AQ("ID")
取到的值就不对了,不知道对不对
phuson 2006-06-26
  • 打赏
  • 举报
回复
不知道这样行得通不?

==========是否行得通,测试一下不就行了?(我以前这样用过,是行得通的。)
FlashK 2006-06-26
  • 打赏
  • 举报
回复
SELECT @@IDENTITY AS 'Id'

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧