Advertisement
RibaSoft

Pegar novo ID gerado pelo GENERATE no INSERT

Jun 27th, 2023
1,678
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.18 KB | Software | 0 0
  1. try
  2.   with DataModulo.Query do
  3.   begin
  4.     if (Active) then
  5.       Close;
  6.     SQL.Clear;
  7.     SQL.Add('INSERT INTO PAGAMENTOS (ID_VENDA, ID_ABERTURA_CAIXA, ID_FORMA_PAGAMENTO, ' +
  8.       'ID_USUARIO, NCAIXA, ID_BANDEIRA, ID_PARCELA, VALOR, JUROS, TROCO, DESCR, DATA, HORA, ATIVO) ' +
  9.       'VALUES (:ID_VENDA, :ID_ABERTURA_CAIXA, :ID_FORMA_PAGAMENTO, :ID_USUARIO, :NCAIXA, :ID_BANDEIRA, ' +
  10.       '0, :VALOR, 0, 0, :DESCR, CURRENT_DATE, CURRENT_TIME, TRUE) RETURNING(ID)');
  11.     ParamByName('ID_VENDA').AsInteger := AID_Venda;
  12.     ParamByName('ID_ABERTURA_CAIXA').AsInteger := auxID_AberturaCaixa;
  13.     ParamByName('ID_FORMA_PAGAMENTO').AsInteger := AFormaPagamento;
  14.     ParamByName('ID_USUARIO').AsInteger := auxID_Usuario;
  15.     ParamByName('NCAIXA').AsInteger := auxNCaixa;
  16.     ParamByName('ID_BANDEIRA').AsInteger := ABandeiraCartao;
  17.     ParamByName('VALOR').AsCurrency := AValor;
  18.     ParamByName('DESCR').AsString := ADescr;
  19.     Open;
  20.     Result := FieldByName('ID').AsInteger;
  21.   end;
  22.   DataModulo.Transaction.Commit;
  23. except
  24.   on E: Exception do
  25.   begin
  26.     DataModulo.Transaction.Rollback;
  27.     raise Exception.Create('Erro ao inserir pagamento!' + #13 + E.Message);
  28.   end;
  29. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement