Re: [firebase-br] Ajuda sobre trigger. Como faço para uma trigger incrementa um generato

RedDevil reddevil em reddevil.eti.br
Ter Jul 26 18:39:51 -03 2005


ola Giovani,

> Acho que você vai ter que criar um campo "laranja" pra receber o valor
> do gen_id, incrementando assim o valor do generator:
> new.laranja = gen_id(generator, 1)
>
> É um campo a mais na tabela, mas não vejo outra solução.

nao eh necessario criar nenhum campo laranja, nem banana, nem jabuticaba, etc e
talz...
;o)

basta atribuir o valor do generator a uma variavel, que dessa forma o generator
sera incrementado...

e ate domingo passado ele queria que, ao chegar a um determinado valor, o
generator fosse reinicializado...

como nao eh possivel usar o "set generator xxxx to x" dentro de SP's/Triggers,
basta fazer isso ae abaixo:

{
create trigger codpac for pacientes
active before insert position 0
as
declare variable vcodigo integer;
begin

vcodigo = GEN_ID(gen_pacientes,1);

if (:vcodigo > 1000) then
begin
 vcodigo = 1;
 vcodigo = GEN_ID(gen_pacientes, vcodigo - GEN_ID(gen_pacientes,0) );
end

if (new.codigo is null) then new.codigo = :vcodigo;

end
}


[]s
força sempre.
ate +++

--
Luiz "RedDevil" Stefanski
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630






Mais detalhes sobre a lista de discussão lista