You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 10(Firemonkey)中获取SQLite最后插入记录的ID

获取SQLite自增表最后插入ID的几种方法(Delphi 10 Firemonkey)

嗨,这个问题我太熟了!在Delphi 10搭配Firemonkey和SQLite开发时,要拿到自增字段的最后插入ID,有两种非常靠谱的实现方式,我给你一步步讲清楚:

方法一:用SQLite原生函数last_insert_rowid()

这是最通用的方案,不管你的SQLite版本新旧都能用,核心是利用SQLite内置的last_insert_rowid()函数——它会返回当前连接中最后一次插入操作生成的自增ID。

修改你的代码如下:

var myQr: TFDQuery;
    lastID: Integer;
begin
  myQr := TFDQuery.Create(Self);
  try
    myQr.Connection := YourFDConnection; // 一定要关联你的FDConnection!
    with myQr do begin
      // 构造插入语句(注意:自增ID字段可以不用传值,SQLite会自动生成)
      SQL.Add('Insert into table1 (_name, _dthr) values (:_name, :_dthr)');
      Params.ParamByName('_name').Value := '测试名称';
      Params.ParamByName('_dthr').Value := Now;
      
      // 执行插入
      ExecSQL;
      
      // 查询最后插入的ID
      SQL.Clear;
      SQL.Add('SELECT last_insert_rowid() AS LastID');
      Open;
      
      // 获取结果
      lastID := FieldByName('LastID').AsInteger;
      ShowMessage('最后插入的ID是:' + IntToStr(lastID));
    end;
  finally
    myQr.Free; // 别忘了释放资源
  end;
end;

注意:这个函数是基于当前数据库连接的,所以必须保证插入和查询用的是同一个连接对象,否则可能拿到其他连接的插入ID。

方法二:用FireDAC的RETURNING语法(更简洁)

如果你的SQLite版本在3.35.0及以上(这个版本之后支持RETURNING子句),可以直接在插入语句里返回自增ID,代码更紧凑:

var myQr: TFDQuery;
    lastID: Integer;
begin
  myQr := TFDQuery.Create(Self);
  try
    myQr.Connection := YourFDConnection;
    with myQr do begin
      // 插入语句末尾加RETURNING id,直接返回自增字段的值
      SQL.Add('Insert into table1 (_name, _dthr) values (:_name, :_dthr) RETURNING id');
      Params.ParamByName('_name').Value := '测试名称';
      Params.ParamByName('_dthr').Value := Now;
      
      // 这里用Open而不是ExecSQL,因为要接收返回的结果
      Open;
      
      // 直接获取ID
      lastID := FieldByName('id').AsInteger;
      ShowMessage('最后插入的ID是:' + IntToStr(lastID));
    end;
  finally
    myQr.Free;
  end;
end;

额外提醒:如果一定要传_id参数

如果你因为某些原因必须在插入语句里写_id字段,记得把它的值设为Null,这样SQLite才会自动生成自增ID:

Params.ParamByName('_id').Value := Null;

之后再用上面两种方法之一获取ID就可以了。

内容的提问来源于stack exchange,提问作者Zayn Barcktu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:31:56