[firebase-br] Ajuda em Triger

Zottis zottissistemas em brturbo.com.br
Sex Jun 19 13:16:50 -03 2009


to tentando fazer assim, mas da erro?

alguém sabe como proceder?

CREATE TRIGGER TG_ZERA_COD_ANUAL_FAR FOR FAR_MTR
ACTIVE BEFORE INSERT OR UPDATE OR DELETE POSITION 120
AS
begin

if (EXTRACT(YEAR FROM (select max(Far_mtr.Data_cad)))
     < EXTRACT(YEAR from CURRENT_DATE)) then
  Begin
     execute statement 'ALTER SEQUENCE GEN_CODIGO_ANUAL RESTART WITH 0;';
    end;

end


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
----- Original Message ----- 
From: "Magno System" <magno em speet.com.br>
To: <prismars em gmail.com>; "FireBase" <lista em firebase.com.br>
Sent: Friday, June 19, 2009 11:25 AM
Subject: Re: [firebase-br] Ajuda em Triger


O problema dele é verificar se mudou ou não o ano e para criar o novo
generator ele vai ter que verificar também se mudou ou não. Conseguindo essa
verificação o problema dele está resolvido, pois a rotina de zerar o
generator está pronta.


----- Original Message ----- 
From: "Moacir - GMail" <prismars em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, June 19, 2009 11:20 AM
Subject: Re: [firebase-br] Ajuda em Triger


Acredito que uma boa solução seria criar um generator para cada ano, com
isto vc poderá retomar lançamentos do período anterior, caso necessário.

1) Verificar se o generator daquele ano ja existe

SELECT RDB$GENERATOR_NAME FROM RDB$GENERATORS WHERE
RDB$GENERATOR_NAME='GEN_CONTROLE2009';

2) Caso não exista, criar:

CREATE SEQUENCE GEN_CONTROLE2009


[ ]´s

Moacir

João Dias escreveu:
> Fala Zottis
>
> Uma sugestão para isso seria você verificar a data do seu movimento diário 
> (se você guardar) ou do CURRENT_DATE (Data do Server)
> extraindo o dia e o mês e verificando
>
> if ((EXTRACT(DAY FROM :DATA)=1) AND (EXTRACT(MONTH FROM :DATA)=1)) then
>    begin
>          --Se o dia for 1 e o mês for 1 então é o primeiro dia do ano e 
> podemos incrementar o ano e zerar o Generator
>    end
>
>

______________________________________________
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


______________________________________________
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