Descoberta do ID gerado automaticamente
06/10/2015
0
Carlos Cabral
Posts
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.
07/10/2015
Carlos Cabral
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 ?
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
25/09/2020
Socrates Foschera
Clique aqui para fazer login e interagir na Comunidade :)