uso de trigger para autoincremento

Firebird

11/11/2004

eu to iniciando no FB tenho uma dúvida


eu criei um gatilho(trigger) pra criar um campo auto-incremento ficou assim

ALTER TRIGGER CONTAS_BI0
ACTIVE BEFORE INSERT POSITION 1
AS
begin
   contas.id_contas = GEN_ID(gen_contas_id,1);
end


mas quando eu insiro um registro no aplicativo o campo q deveria ser autoincremento nao incrementa
eu to usando os componentes do IB pra acessar o banco


alguem sabe o q eu to fazendo errado, ou q eu preciso pra fazer funcionar o trigger


Anderson_blumenau

Anderson_blumenau

Curtidas 0

Respostas

Fsflorencio

Fsflorencio

11/11/2004

Parece que tá tudo certo.

vc já conferiu no banco de dados por algum sgdb se o registro foi inserido?

Se é um campo chave então o campo não admite ficar vazio. Ocorre algum erro?


GOSTEI 0
Gandalf.nho

Gandalf.nho

11/11/2004

Primeiro uma sugestão de mudança na trigger:
ALTER TRIGGER CONTAS_BI0
ACTIVE BEFORE INSERT POSITION 1
AS
BEGIN
if (new.idcontas is null) then
new.id_contas = GEN_ID(gen_contas_id, 1);
END

Um motivo do problema pode ser o fato de que não foi usado o NEW na atribuição do generator. Além disso, no seu dataset no Delphi coloque Required = False para todos os campos.


GOSTEI 0
POSTAR