[firebase-br] Res: ajuda em trigger

Fabinho gatascheguei em yahoo.com.br
Qui Jul 12 16:35:23 -03 2007


Sim, desta forma deu certo. Muito obrigado, sr Eduardo.



----- Mensagem original ----
De: Eduardo Pelizzari de Andrade <eduardoandrade em persoft.com.br>
Para: FireBase <lista em firebase.com.br>
Enviadas: Quinta-feira, 12 de Julho de 2007 14:16:04
Assunto: Re: [firebase-br] ajuda em trigger


Do jeito que você fez a trigger vai ficar dando update recusivamente, poque você dá um update nela mesmo e a própria trigger é executada a cada update.

Troque o after pelo before e inicie os campos ao invés de dar um update.

CREATE TRIGGER APART_RESERVADO FOR APARTAMENTOS
ACTIVE *BEFORE* INSERT OR UPDATE POSITION 0
AS
begin
  if ((new.apart_reservadopara is not null)) then
   *new.apart_reservado = 1;*
  if ((new.apart_reservadopara is null)) then
   *new.apart_reservado = 0;*
end



Fabinho escreveu:
> Senhores,
>
> Tenho uma tabela em firebird 2.1 que seguem os campos interessantes a seguir:
>
> APART_CODIGO     tipo smallint
> APART_RESERVADO      tipo smallint
> APART_RESERVADOPARA      dominio datenull*
> *o domínio datenull é do tipo date, com valor default null.
>
> Criei a seguinte trigger para setar o valor do campo APART_RESERVADO para 1, caso o usuário colocar uma data no campo APART_RESERVADOPARA. Quando coloco uma data neste campo e vou salvar, o IBExpert critica com a mensagem "Too many concurrent executions of the same request".
>
> Segue a trigger:
>
> CREATE TRIGGER APART_RESERVADO FOR APARTAMENTOS
> ACTIVE AFTER INSERT OR UPDATE POSITION 0
> AS
> begin
>   if ((new.apart_reservadopara is not null)) then
>    update apartamentos ap set ap.apart_reservado = 1;
>   if ((new.apart_reservadopara is null)) then
>    update apartamentos ap set ap.apart_reservado = 0;
> end
>
>
> grato pela atenção.
>
>
>        
> ____________________________________________________________________________________
> Novo Yahoo! Cadê? - Experimente uma nova busca.
> http://yahoo.com.br/oqueeuganhocomisso 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>   

-- 
Eduardo Pelizzari de Andrade
Persoft Softwares Aplicativos
Fone: 55 11 62218061


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


       
____________________________________________________________________________________
Novo Yahoo! Cadê? - Experimente uma nova busca.
http://yahoo.com.br/oqueeuganhocomisso 


Mais detalhes sobre a lista de discussão lista