Zerar Generator por umTrigger
olá pessoal, como faço para zerar um generator por um trigger ex:
toda vez que eu iniciar um novo registro em uma tabela o trigger zera o generator genteste por exemplo.
valeu pessoal :D
toda vez que eu iniciar um novo registro em uma tabela o trigger zera o generator genteste por exemplo.
valeu pessoal :D
Tap_pedroso
Curtidas 0
Respostas
Fsflorencio
05/10/2004
CRIE UMA TRIGGER NO AFTER OU BEFORE INSERT DA TABELA E COLOQUE O CÓDIGO:
set generator genteste to 0;
set generator genteste to 0;
GOSTEI 0
Tap_pedroso
05/10/2004
vc não tem outra maneira porque eu coloquei [b:daab635834]set generator teste to 0[/b:daab635834] dentro da trigger e ela não aceita o set dentro do trrigger e não compila
GOSTEI 0
Afarias
05/10/2004
|set generator genteste to 0;
set generator NÃO pode ser usado em Triggers e Procedures. Se deseja ´zerar´ um generator use::
i = gen_id(generator, -1 * gen_id(generator, 0));
T+
set generator NÃO pode ser usado em Triggers e Procedures. Se deseja ´zerar´ um generator use::
i = gen_id(generator, -1 * gen_id(generator, 0));
T+
GOSTEI 0
Fsflorencio
05/10/2004
é mesmo.
GOSTEI 0
Tap_pedroso
05/10/2004
blz então eu só crio a trigger declaro a variavel i como integer e na trigger coloco somente a linha de codigo ex:
SET TERM # ; CREATE TRIGGER "ZERAGEN" FOR "TABPEDIDO" ACTIVE BEFORE INSERT POSITION 0 AS DECLARE VARIABLE i INTEGER; BEGIN i = gen_id(NRITEMPEDIDO, -1 * gen_id(NRITEMPEDIDO, 0)); END SET TERM ;
GOSTEI 0
Bolus
05/10/2004
Caros colegas,
Outra solução para zerar o Generator é utilizar o execute statement,
utilizei em um projeto e funcionou...
coloque na trigger a seguinte linha.
Isso deve solucionar o seu problema também....
Obs.: Utilizei no Firebird 1.5.1....
Espero ter ajudado.
Outra solução para zerar o Generator é utilizar o execute statement,
utilizei em um projeto e funcionou...
coloque na trigger a seguinte linha.
execute statement "set generator genteste to 0";
Isso deve solucionar o seu problema também....
Obs.: Utilizei no Firebird 1.5.1....
Espero ter ajudado.
GOSTEI 0
Afarias
05/10/2004
apenas o Firebird 1.5 suporta EXECUTE STATEMENT
T+
T+
GOSTEI 0
Rogério Clemente
05/10/2004
execute statement 'alter sequence NomeDoGerador restart with 0';
Uso o Firebird 2.5. Não testei em outras versões... Vc pode descobrir o comando certo usando o IBExpert. Zera um generator pelo IBExpert e veja o comando que ele executa.
Uso o Firebird 2.5. Não testei em outras versões... Vc pode descobrir o comando certo usando o IBExpert. Zera um generator pelo IBExpert e veja o comando que ele executa.
GOSTEI 0