Delphi 中操作MS SQL Server 返回刚插入的自增ID列值

这篇具有很好参考价值的文章主要介绍了Delphi 中操作MS SQL Server 返回刚插入的自增ID列值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开发数据库的应用的时候,经常需要写入日志,比如某个日志需要记录用户打开程序的时间和用户关闭程序的时间,显然这是两个动作,因为用户打开程序可能需要使用一段时间才会关闭。那么当用户打开程序时,我们首先就需要插入一条日志记录,记录下当前用户打开的时间,同时需要返回当前日志的ID值(自增),以方便用户关闭程序时使用该ID更新日志记录的关闭时间字段。

在Delphi中可以使用如下简单方法直接获取到当前对话的ID值:

       var
         ID : integer;   
       
       FDConnection := TFDConnection.Create(nil);
       try
         FDConnection.ConnectionDefName := Get_DBConnectionStr;  //数据库连接参数串
         ID := FDConnection.ExecSQLScalar('INSERT INTO 表名 (name,age) VALUES(:A1,:A2); SELECT scope_identity()',['sensor',42]);
         
       finally
         FDConnection.Free;
       end;
       

说明:

1. SELECT scope_identity() 语句是重点;

2. FDConnection 会把整个 ExecSQLScalar 中的语句整体作为一个事务(会话),所以即便是多账户操作插入,返回的ID也是正确的。

3. ExecSQLScalar中是可以输入写多条SQL语句的。文章来源地址https://www.toymoban.com/news/detail-512428.html

到了这里,关于Delphi 中操作MS SQL Server 返回刚插入的自增ID列值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sqlite插入语句id自增列问题

    sqlite给主键id设置AUTOINCREMENT自增在插入数据的时候报错table has x columns but x-1 values were supplied 为什么自增列要显示不提供,sqlite需要提供自增列table ResTools has 7 columns but 6 values were supplied SQL Statement:insert into ResTools values(\\\'管理系统winform+Sqlite\\\',\\\'项目\\\\C#程序设计\\\\C#winform项目\\\\管理系

    2024年01月18日
    浏览(19)
  • mybatis实战:四、insert 用法(普通插入、返回主键自增的值)

    1.UserMapper.xml 1.指定特殊数据类型 2.<insert >元素,这个标签包含如下属性  2. UserMapperTest  1.只插入一条数据 2.回滚(不写入数据库) 3.插入后判断是否为空(为空/不为空,抛异常) 3.UserMapper 方法一: 使用 JDBC 方式返回主键自增的值  方法二: 使用 selectKey 返回主键的值

    2024年02月07日
    浏览(36)
  • 使用hive sql 为hive增加或者创建自增列,自增id的五种方式

    *注意:此篇完全是废话,是错误演示文档 创建带有自增ID的Hive表的方法是使用Hive中的 SERDE (序列化和反序列化)和 ROW FORMAT 来为表添加自增ID。具体步骤如下: 在上面的代码中,我们首先使用 CREATE TABLE 语句创建一个名为 your_table 的表,并指定了表的列和数据类型。

    2023年04月18日
    浏览(29)
  • SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段

    SQL INSERT INTO 语句用于在表中插入新记录。 INSERT INTO 语法 可以以两种方式编写INSERT INTO语句: 指定要插入的列名和值: 如果要为表的所有列添加值,则无需在SQL查询中指定列名。但是,请确保值的顺序与表中的列顺序相同。在这种情况下,INSERT INTO 语法如下: 演示数据库 以

    2024年02月05日
    浏览(42)
  • mybatis插入后返回主键id的三种方式

    第一种:在xml文件,insert标签属性中,添加useGeneratedKeys和keyProperty,如图   第二种:在xml文件,添加selectKey标签属性,各个属性值含义:resultType:查询结果的类型;keyProperty:把查询的值赋给谁;order:在插入前还是后执行,id在insert语句插入之后才会生成id,所以要在插入之

    2024年02月15日
    浏览(30)
  • SQL server中字段自增:IDENTITY、序列Sequence

    1.列字段自增`IDENTITY 在 SQL Server 中, IDENTITY(1, 1) 是用于定义一个自增长列的属性。它的含义如下: IDENTITY :表示该列是一个自增长列。 (1, 1) :表示自增长列的起始值为 1,每次递增 1。 当你在创建表时使用 IDENTITY(1, 1) 属性,就会为该表创建一个自增长列,每次插入新记录时

    2024年02月05日
    浏览(38)
  • 【数据库】Sql Server数据迁移,处理自增字段赋值

    给自己一个目标,然后坚持一段时间,总会有收获和感悟! 在实际项目开发中,如果遇到高版本导入到低版本,或者低版本转高版本,那么就会出现版本不兼容无法导入,此时通过程序遍历创建表和添加数据方式可以解决 在 SQL Server 中,数据迁移是常见的场景之一。 以下是

    2024年02月08日
    浏览(42)
  • MS SQL Server 查看存储过程

    要查看 MS SQL Server 中的存储过程,可以使用以下方法之一: 使用 SQL Server Management Studio (SSMS): 连接到 SQL Server 数据库实例并展开数据库节点。 在对象资源管理器中,展开 \\\"编程性对象\\\" 节点,然后选择 \\\"存储过程\\\" 节点。 在右侧的窗格中,将显示数据库中的所有存储过程。

    2024年02月14日
    浏览(33)
  • 选择适合您网站的 SQL 托管:MS SQL Server、Oracle、MySQL

    如果您希望您的网站能够存储和检索数据,您的Web服务器应该能够访问使用SQL语言的数据库系统。以下是一些常见的SQL托管选项: Microsoft的SQL Server是一个流行的数据库软件,适用于具有高流量的数据库驱动网站。它是一个强大、稳健且功能齐全的SQL数据库系统。 Oracle也是一

    2024年02月05日
    浏览(26)
  • PostgreSQL数据库实现表字段的自增

    在使用MySQL的时候,创建表结构时可以通过 AUTO_INCREMENT 来指定主键是否自增。在PostgreSQL数据库中,使用序列来实现字段的自增。 PostgreSQL序列是一种特殊的用于生产整数序列数据库对象。序列通常用于主键列,与mysql的AUTO_INCREMENT 概念类似。 PostgreSQL 提供三种序列伪类

    2024年02月04日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包