Não salva o resultado da query no banco de dados (Firebird)
20/02/2020
0
var
mQuery : TFDQuery;
begin
Result := 0;
try
QueryCriar(mQuery, False);
mQuery.SQL.Add('SELECT NFCE_SEQUENCIA FROM CONFIGURACAO');
mQuery.Open();
mQuery.CachedUpdates := True;
FrmPrincipal.ConnectConfigPDV.StartTransaction;
mQuery.Edit;
mQuery.FieldByName('NFCE_SEQUENCIA').AsInteger := mQuery.FieldByName('NFCE_SEQUENCIA').AsInteger + 1;
mQuery.Post;
Result := mQuery.FieldByName('NFCE_SEQUENCIA').AsInteger;
finally
QueryLiberar(mQuery);
end;
end;
Alguém saberia me ajudar? Não estou conseguindo encontrar qual é a linha que esta incorreta.
A numeração da nota esta somando + 1 corretamente, só não grava no firebird.
Ana Soares
Post mais votado
20/02/2020
function GetNumeroNFCe(aIDLoja: Integer): Integer; var mQuery: TFDQuery; begin Result := 0; try QueryCriar(mQuery, False); FrmPrincipal.ConnectConfigPDV.StartTransaction; // abre a transacao mQuery.ExecSQL('UPDATE CONFIGURACAO SET NFCE_SEQUENCIA = NFCE_SEQUENCIA + 1'); FrmPrincipal.ConnectConfigPDV.Commit; // confirma a transacao mQuery.Open('SELECT NFCE_SEQUENCIA FROM CONFIGURACAO'); Result := mQuery.FieldByName('NFCE_SEQUENCIA').AsInteger; mQuery.Close; finally QueryLiberar(mQuery); end; end;
Só não entendi a finalidade do parâmetro aIDLoja
Emerson Nascimento
Mais Posts
20/02/2020
Ana Soares
Eu copiei e coloquei a function de outra parte do código, esqueci de apagar.o aIDLoja.
20/02/2020
Emerson Nascimento
se usar generator, o instrução seria mais ou menos assim:
function GetNumeroNFCe(): Integer; var mQuery: TFDQuery; begin Result := 0; try QueryCriar(mQuery, False); mQuery.Open('SELECT GEN_ID(NFCE_SEQUENCIA,1) PROX_NFCE FROM RDB$DATABASE'); Result := mQuery.FieldByName('PROX_NFCE').AsInteger; mQuery.Close; finally QueryLiberar(mQuery); end; end;
para criar o generator no Firebird:
CREATE SEQUENCE NFCE_SEQUENCIA START WITH XXX INCREMENT BY 1; -- XXX É O VALOR INICIAL, NO CASO, O ÚLTIMO NFCE EXISTENTE /* Sintaxe antiga: CREATE GENERATOR NFCE_SEQUENCIA; SET GENERATOR NFCE_SEQUENCIA TO XXX; -- XXX É O VALOR INICIAL, NO CASO, O ÚLTIMO NFCE EXISTENTE */ /* Previlégios para o generator */ GRANT USAGE ON SEQUENCE NFCE_SEQUENCIA TO SYSDBA WITH GRANT OPTION;
26/03/2020
Ana Soares
Clique aqui para fazer login e interagir na Comunidade :)