[firebase-br] Ajuda em Triger

Magno System magno em speet.com.br
Sex Jun 19 10:40:54 -03 2009


A trigger é ligada a uma tabela. Nesta tabela você deve ter um campo onde 
fique gravado o ano corrrente. Pode até ser em outra tabela se você achar 
melhor. Toda vez que a trigger for disparada ela vai comparar se o valor do 
campo que guarda o ano corrente é igual ao ano atual:

SELECT ANOCORRENTE FROM TABELA INTO :ANOCORRENTE;
SELECT EXTRACT(YEAR FROM CURRENT_DATE) FROM RDB$DATABASE INTO :ANOATUAL;
IF (:ANOCORRENTE <> :ANOATUAL) THEN
BEGIN
     execute statement 'ALTER SEQUENCE GEN_CODIGO_ANUAL RESTART WITH 0;';
     UPDATE TABELA SET ANOCORRENTE =  :ANOATUAL;
END

Não testei, mas tente algo parecido.


----- Original Message ----- 
From: "Zottis" <zottissistemas em brturbo.com.br>
To: <lista em firebase.com.br>
Sent: Friday, June 19, 2009 9:56 AM
Subject: [firebase-br] Ajuda em Triger


Pessoal, preciso fazer uma Triger que ZERE um generator quando mudar o Ano,

Mais ou menos Assim:

create trigger ZERAR_CODIGO_ANUAL
active on connect as
begin
     execute statement 'ALTER SEQUENCE GEN_CODIGO_ANUAL RESTART WITH 0;';
end

mas não sei como reconhecer se é um novo ano
pensei em pegar a data maior de alguma tabela, e comparar o ano

mas não tenho certeza de como fazer, alguém poderia me dar alguma dica?


Zottis(TeamFB Users)

Zottis Sistemas - 2009 Ano XII
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista