asp插入数据库后立即取插入时的ID

nerissa 2008-10-28 04:21:36
我用
set rs=Server.CreateObject("adodb.recordset")
sql="select * from dingshun"
rs.open sql,conn,1,3

rs.addnew()

rs("ds_labh")=trim(request.Form("ds_labh"))
rs.update()
插入数据库后,要立即取得rs("id")
通过这个
dim aa
aa=rs("id")
始终只能,得到第一条数据,还有,如果 是多人同时插入,时如何保证不出错,请指教
...全文
143 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmidd 2008-10-28
  • 打赏
  • 举报
回复
那么ID就不要用自动编号

自己算个数插入
nerissa 2008-10-28
  • 打赏
  • 举报
回复
最后的结果是:在RS.UPDATE
后加rs.movelast
再读出来,QQ群上的朋友帮忙搞定的
长明 2008-10-28
  • 打赏
  • 举报
回复
在update之前就取
hansonboy 2008-10-28
  • 打赏
  • 举报
回复
上面的写法要注意防sql注入, 这步就不用给你写明了吧
银狐被占用 2008-10-28
  • 打赏
  • 举报
回复
sql="insert into ..."
conn.execute sql
sql="select @@identity" 'sql="select scope_identity()"
rs.open sql,conn,1,3
response.write rs(0)
hansonboy 2008-10-28
  • 打赏
  • 举报
回复

Dim Sql,Rs
Sql = "set nocount on Insert Into dingshun(ds_labh) Values('" & trim(request.Form("ds_labh")) & "');" &_
"Select @@Identity set nocount off"
Set Rs = Conn.Execute(Sql)
dim aa
aa = Rs(0)
菜鸟学编程 2008-10-28
  • 打赏
  • 举报
回复
rs.movelast
littlelam 2008-10-28
  • 打赏
  • 举报
回复
如果是MS SQL就简单

这个可以这样
aa = conn.Execute("Select max(id) from dingshun")(0)
idc868 2008-10-28
  • 打赏
  • 举报
回复
如果你的编号是递增的话,那么你插入结束后再用TOP 1地方法查询,查询时按照ID从大到小排序,这样总是能查出最大的也是最新添加的,如果你没有一秒钟同时20人以上插入记录的话,问题不大

28,391

社区成员

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

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