uso de trigger para autoincremento
eu to iniciando no FB tenho uma dúvida
eu criei um gatilho(trigger) pra criar um campo auto-incremento ficou assim
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
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
Curtidas 0
Respostas
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?
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
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.
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