Fórum Descoberta do ID gerado automaticamente #533797
06/10/2015
0
Carlos Cabral
Curtir tópico
+ 0Posts
07/10/2015
Raimundo Pereira
Depois de realizar de gravar o registro .
Você pode realizar o locate ou pode montar um select para retornar o registro e pegar o código, ou também pode ir para o ultimo registro e pegar o código .
No meu caso eu usaria o locate
Exemplo:
IF DM.SUA_TABELA.LOCATE('DESCRICAO',EDIT_COM_DESCRIÇÃO.TEXT,[]) THEN
BEGIN
SHOWMESSAGE(INTTOSTR(DM.SUA_TABELA.FIELBYNAME('CODIGOPRODUTO').ASINTEGER);
END;
Aguardo retorno.
Gostei + 0
07/10/2015
Carlos Cabral
Gostei + 0
24/10/2015
Carlos Cabral
Marco
Eu acho que não compreendi ou nao sei usar esse comando. Após eu dar o comando POST e APPLY UPDATE no delphi e o próprio firebird incrementar um ID automatico
como eu faço para pegar o ID que foi gerado pelo banco ? Como devo utilizar o RETURNING ?
Gostei + 0
11/11/2015
Carlos Cabral
class function TSQL.GetMaxCode(const AGeneratorName: String): String;
begin
Result := 'SELECT GEN_ID('+ AGeneratorName +', 0) AS CODIGO FROM RDB$DATABASE';
end;
Lembrando que, a SQL está colocando como parâmetro o valor 0, ou seja, NÃO SERÁ INCREMENTADO nada no generator, apenas trazer o último valor, como o campo CODIGO, abaixo outra função que obtém o valor:
function TProduto.GetMaxCode: System.Integer;
begin
try
fConnection.ClearSQL;
fConnection.AddSQL(TSQL.GetMaxCode('ID_PRODUTO'));
fConnection.OpenSQL;
Result := fConnection.FieldByName('CODIGO').AsInteger
except
raise;
end;
end;
Meu amigo, muito obrigado. Testei e funcionou legal. Obrigado
Gostei + 0
25/09/2020
Socrates Foschera
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)