Gerar ID da tabela depois de dar um Append ou Insert
17/06/2022
0
Kauan Oliveira
Posts
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
17/06/2022
Paulo
17/06/2022
Kauan Oliveira
Clique aqui para fazer login e interagir na Comunidade :)