delphi+ado+sqlserver怎样在插入之后返回自增字段的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi+ado+sqlserver怎样在插入之后返回自增字段的值?相关的知识,希望对你有一定的参考价值。

delphi+ado+sqlserver怎样在插入之后返回自增字段的值?
数据库有张表,一个字段是自增字段,一个是内容字段,如何在插入一条数据后得到新插入行的自增字段的值?

目前已知两种方式:
1、insert之后执行select top 1 fileId from table order by fileId desc,缺点是不能并行执行。所以暂不考虑。又不想使用锁表。

2、SELECT @@IDENTITY as fileId这种方式不知道在delphi中怎么取。

有其他办法么??

delphi里的query执行sql完毕后
再执行select @@Identity+1
然后adoquery1.fields[0].value 就是返回自增字段的值
参考技术A 写存储过程
insert ...
SELECT @@IDENTITY as fileId

delphi调用存储过程。

delphi中ado连接sqlserver

如图 我在选了 SQL 2000后 下一步的时候不能找到数据库 ,我选了 后面这个的时候可以找到数据库 但是我用的是SQL2000 有会的教下我吧 我是菜鸟 10分哦!

参考技术A 用图1的方式可以手工输入数据库IP、端口地址,还有登陆用户名密码等(但需要注意,需要在SQLServer上设置可以通过用户名和密码登陆,而不是仅仅绑定windows的用户。),然后就可以连接了。
如果用图3的设置,是通过ODBC连接数据库,则需要设置ODBC源,在控制面板--管理工具--ODBC管理中可以添加。
参考技术B 本机开发:
1. 驱动选择:图1正解
2. 本机上开发可以直接到图2的“3”选择数据库,非本机开发,需要在本机上装sql server的客户端才成(同oracle道理一样),客户端要能够连接到服务器上
3. 象这种网络数据库开发,推荐DataSnap,三层架构做起来省时省力本回答被提问者采纳
参考技术C 选择Microsoft OLE DB Provider for SQL Server
如果没有列表出服务器,手动指定服务器地址和登录时要用到的用户名密码即可,追问

试过的哦,不行的、、

参考技术D 图1OK。
图2,不一定每次都能枚举成功的,自己填写即可。
如果数据库在本地,填写"."or“127.0.0.1”or“(local)"都可以。
如果不在本地,填写数据库所在计算机的IP地址或计算机名称即可。

以上是关于delphi+ado+sqlserver怎样在插入之后返回自增字段的值?的主要内容,如果未能解决你的问题,请参考以下文章

delphi中ado连接sqlserver

delphi怎样在ADO里用ADOproc调用数据库sql server存储过程?,用ADODATASET或者ADOQUERY又怎样调用存储过程?

使用 Delphi 检索 ADO 错误

delphi用ado连接oracle

怎样使用ADO中的UpdateBatch方法(200分)

delphi中的SQL语句