[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