GARANTIR DESCONTO

Fórum trigger e generator não funcionam #38651

10/09/2003

0

Criei um generator GEN_AUSENTE e criei um trigger AUTO_COD para que o campo codigo da tabela ausente pudesse ser autoincremento, o generator gera sempre o codigo + 1, mas isso não vai para o campo codigo da tabela como foi definido no trigger.
NEW.CODIGO = GEN_ID(GEN_AUSENTE, 1)

como resolver isso, estou dbexpress?


Lcarneiro

Lcarneiro

Responder

Posts

12/09/2003

Afarias

|mas isso não vai para o campo codigo da tabela como foi definido no
|trigger.

Claro q vai... (se a trigger for BEFORE INSERT). Agora, como o valor está sendo gerado no servidor, não tem como o ´cliente´ ficar sabendo -- a não ser q vc feche/abra a consulta.

Este método de gerar campos ´autoincremento´ é extremamente difundido para os iniciantes sem nenhum sentido pois não é o método ´esperado´.

Faça o seguinte, no evento BeforePost ou OnNewRecord do seu DataSet (ou em outro lugar se preferir) coloque um código do tipo::

with QueryGeraCodigo do
try
Open;
NovoCodigo := Fields[0].AsInteger;
finally
Close;
end;


Onde ::

QueryGeraCodigo é uma query com um SQL do tipo::

SELECT GEN_ID(nome_generator, 1) FROM RDB$DATABASE

e, NovoCodigo vc deve substituir pelo campo CODIGO da tabela q vc pretende inserir os dados.


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar