database - Delphi 7在AdoQuery插入请求后获取身份
问题描述
在我发布我的问题之前,我已经在这里检查了所有内容
我有一个数据库 MICROSOFT ACCESS 我创建了一个带有 N_VERSEMENT 类型 AutoIncrement 的 TABLE_VERSEMENT 所以我想插入一条记录并获取 N_Versement 记录
当我删除 OUTPUT INSERTED.N_VERSEMENT 时一切正常,否则
调试器引发“INSERT INTO 中的错误语法”
Column Type
====== ====
N_VERSEMENT AutoIncrement
UTILISATEUR Text
... ...
... ...
AdoQuery.Close;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('INSERT INTO TABLE_VERSEMENT (UTILISATEUR,ID_CLIENT,RAISON_SOCIALE,DATE_VERSEMENT,SOMME,REFERENCE_VERSEMENT,ANCIEN_SOLDE,NOUVEAU_SOLDE)');
AdoQuery.SQL.Add(' OUTPUT INSERTED.N_VERSEMENT ');
AdoQuery.SQL.Add(' VALUES (:UTILISATEUR, :ID_CLIENT, :RAISON_SOCIALE, :DATE_VERSEMENT, :SOMME, :REFERENCE_VERSEMENT, :ANCIEN_SOLDE, :NOUVEAU_SOLDE);');
AdoQuery.Parameters.ParamByName('UTILISATEUR').Value := 'DEFAULT_USER';
AdoQuery.Parameters.ParamByName('ID_CLIENT').Value := IdClient;
AdoQuery.Parameters.ParamByName('RAISON_SOCIALE').Value := Rs;
AdoQuery.Parameters.ParamByName('DATE_VERSEMENT').Value := FormatDateTime('dd/mm/yyyy',Date);
AdoQuery.Parameters.ParamByName('SOMME').Value := Versement;
AdoQuery.Parameters.ParamByName('REFERENCE_VERSEMENT').Value := Refer;
AdoQuery.Parameters.ParamByName('ANCIEN_SOLDE').Value := AncienSolde;
AdoQuery.Parameters.ParamByName('NOUVEAU_SOLDE').Value := NouveauSolde;
AdoQuery.Open;
IdVersement := AdoQuery.Parameters.paramByName('N_VERSEMENT').Value;
解决方案
推荐阅读
- c# - 如何检查列表是否包含所有数组项?
- python - 如何在python scrapy中将日期转换为mysql日期格式
- css - 如何在 React-Bootstrap 中更改 Modal 的大小/高度/宽度?
- fpga - 异步 FIFO SystemVerilog
- php - 在中继器内使用中继器
- react-native - 在 React 中根据条件更改 Toast 图标颜色
- autocomplete - 如何将选项卡完成输出(通常在 cli 光标下方)转储到文件中?
- sql - 这个“order by”,“group by”sql有什么问题?
- c - 为什么在使用 int 变量时会收到警告,但在使用整数常量时却没有?
- sql - 使用 SQL 计算完整图中的边