首页 > 解决方案 > 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;

标签: databasedelphi

解决方案


推荐阅读