Fórum Gerar ID da tabela depois de dar um Append ou Insert #618241
17/06/2022
0
Kauan Oliveira
Curtir tópico
+ 0Posts
17/06/2022
Emerson Nascimento
crie uma function que retorne o número do generator, mais ou menos assim:
// criada originalmente para trabalhar com dbExpress, mas você pode alterar para usar FireDAC
function GeneratorID(aName: string; Connection: TSQLConnection; Incrementa: Boolean): integer;
var
Qry: TSQLQuery;
begin
Qry := TSQLQuery.Create(nil);
try
Qry.SQLConnection := Connection;
if Incrementa then
Qry.SQL.Add('SELECT GEN_ID('+aName+', 1) FROM RDB$DATABASE')
else
Qry.SQL.Add('SELECT GEN_ID('+aName+', 0) FROM RDB$DATABASE');
Qry.Open;
Result := Qry.Fields[0].AsInteger;
finally
FreeAndNil(Qry);
end;
end;daí, no OnNewRecord (ou no AfterInsert, ou onde preferir) do dataset você chama a função:
datast.campoID.AsInteger := GeneratorID('nomedogenerator', componentedeconexao, true); // true incrementa, false retorna o último inserido
Gostei + 0
17/06/2022
Paulo
Gostei + 0
17/06/2022
Kauan Oliveira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)