Problemas com Generator e Trigger, alguém ?
02/04/2003
0
Resolvir a fazer incremento com Generator e triggers mais não está dando certo,
criei o Generator:
Ger_Cod_empresa
Criei uma Trigger:
CREATE TRIGGER GER_COD_EMPRESA FOR EMPRESA ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODIGO IS NULL) THEN
NEW.CODIGO = GEN_ID(GER_COD_EMPRESA, 1);
END
uso DBexpress, SQLDataset DataSetProvider com ClienteDataSet, tenho que executar a trigger ? ou o interbase se encarrega disso ?
Como faço para minha aplicação pegar o código gerado pelo generator ?
Obrigada pela atenção !
[]´s
Renata Coimbra
criei o Generator:
Ger_Cod_empresa
Criei uma Trigger:
CREATE TRIGGER GER_COD_EMPRESA FOR EMPRESA ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODIGO IS NULL) THEN
NEW.CODIGO = GEN_ID(GER_COD_EMPRESA, 1);
END
uso DBexpress, SQLDataset DataSetProvider com ClienteDataSet, tenho que executar a trigger ? ou o interbase se encarrega disso ?
Como faço para minha aplicação pegar o código gerado pelo generator ?
Obrigada pela atenção !
[]´s
Renata Coimbra
Anonymous
Curtir tópico
+ 0
Responder
Posts
02/04/2003
Anonymous
Não tem nada errado com sua trigger!
A trigger é exucutada automaticamente (triggers são como eventos em bancos relacionais) --- vc não tem q fazer nada!
O problema é que, vc está gerando o código no banco, usando esta abordágem só será possível conhecer o código gerado quando vc carregar os registros do banco novamente (close + open).
se vc precisa saber o código no momento da geração, vc deve utilizar um outra abordágem. como não uso DBX, o exemplo que dou é o seginte:
tenha uma Query com o seguinte código:
select gen_id(nome_generator, 1) from rdb$database
sempre, depois de um INSERT ou antes de um POST, execute essa Query, pegue o valor retornado e jogue no campo código.
Abraço
A trigger é exucutada automaticamente (triggers são como eventos em bancos relacionais) --- vc não tem q fazer nada!
O problema é que, vc está gerando o código no banco, usando esta abordágem só será possível conhecer o código gerado quando vc carregar os registros do banco novamente (close + open).
se vc precisa saber o código no momento da geração, vc deve utilizar um outra abordágem. como não uso DBX, o exemplo que dou é o seginte:
tenha uma Query com o seguinte código:
select gen_id(nome_generator, 1) from rdb$database
sempre, depois de um INSERT ou antes de um POST, execute essa Query, pegue o valor retornado e jogue no campo código.
Abraço
Responder
Clique aqui para fazer login e interagir na Comunidade :)