[firebase-br] Varias triggers para uma tabela com erro

Zottis zottissistemas em brturbo.com.br
Sex Dez 12 11:51:22 -03 2008


BLz, obrigado.


Zottis(TeamFB Users)

Zottis Sistemas - 2008 Ano XI
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: "Gustavo Moda" <gustavo.moda em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, December 12, 2008 11:46 AM
Subject: Re: [firebase-br] Varias triggers para uma tabela com erro


Olá,

Você não pode fazer isso pela trigger. Vai entrar em loop.
Chame a procedure sp_soma_fart_mtr depois da operacao de escrita pelo
sua aplicação.


2008/12/12 Zottis <zottissistemas em brturbo.com.br>:
> se eu deixo essa daqui inativa funciona normal:
>
> SET TERM ^ ;
>
> CREATE TRIGGER TG_SOMA_FAR_MTR FOR ITENS_FAR_MTR
> INACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 3
> AS
> begin
> if (inserting) then
> execute procedure Sp_soma_far_mtr(new.cod_far_mtr) ;
> else
> if ((deleting) or (updating)) then
> execute procedure Sp_soma_far_mtr(Old.cod_far_mtr) ;
> end
> ^
>
> CREATE PROCEDURE SP_SOMA_FAR_MTR (
>   Far_mtr_no integer)
> as
> declare variable Vtotal_produtos numeric(15,2);
> declare variable Vpeso_bruto double precision;
> declare variable Vquantia_itens integer;
> begin
> SELECT
>  coalesce( SUM(TOTAL), 0),
>  coalesce( SUM(PESO * QUANTIA),0),
>  coalesce( SUM(QUANTIA),0)
>  FROM Itens_far_mtr
>  WHERE (Cod_far_mtr = :FAR_MTR_NO)
>  INTO :VTOTAL_PRODUTOS,
>      :VPESO_BRUTO,
>      :VQUANTIA_ITENS;
>
> /*if (:VTOTAL_PRODUTOS is null) then VTOTAL_PRODUTOS  = 0;
> if (:VPESO_BRUTO is null) then VPESO_BRUTO    = 0;
> if (:VQUANTIA_ITENS is null) then VQUANTIA_ITENS = 0;*/
>
> UPDATE Far_mtr
> SET Total_produtos      = :VTOTAL_PRODUTOS,
>    Peso_bruto          = :VPESO_BRUTO,
>    Qtd_bambonas        = :VQUANTIA_ITENS
>    where Cod_far_mtr   = :FAR_MTR_NO;
> end^
>
>
> SET TERM ; ^
>
>
> Zottis(TeamFB Users)
>
> Zottis Sistemas - 2008 Ano XI
> 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: "Carlos H. Cantu"
> <listas em warmboot.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Friday, December 12, 2008 11:31 AM
> Subject: Re: [firebase-br] Varias triggers para uma tabela com erro
>
>
> Aparentemente vc está gerando um "loop" infinito com suas triggers, ou
> seja, o trigger está realizando alguma ação que dispara o trigger
> novamente, e assim por diante.
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> Z> Pessoal, tenho uma tabela com varias Triggers para ela
>
> Z> mas ta dando erro
> Z> Error Message:
> Z> ----------------------------------------
> Z> Too many concurrent executions of the same request.
> Z> Too many concurrent executions of the same request.
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At trigger 'TG_ARRUMA_DEL_FAR_MTR' line: 7, col: 9
> Z> At procedure 'SP_SOMA_FAR_MTR' line: 20, col: 2
> Z> At trigger 'TG_SOMA_FAR_MTR' line: 10, col: 1
> Z> At tr...
>
> Z> ja coloquei as posições nas ordens que eu quero que execute, mas 
> continua
> os erros.
>
> Z> como procedo?
>
> Z> desde já agradeço pela ajuda.
>
> Z> Zottis(TeamFB Users)
>
> Z> Zottis Sistemas - 2008 Ano XI
> Z> Programação Delphi/PHP/Firebird/MySQL
>
> Z> "Um homem só tem o direito de olhar
> Z>   a um outro de cima para baixo, quando
> Z>   vai ajuda-lo a levantar-se".
> Z>                    Gabriel Garcia Marquez
> Z> ______________________________________________
> Z> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Z> Para saber como gerenciar/excluir seu cadastro na lista, use:
> Z> http://www.firebase.com.br/fb/artigo.php?id=1107
> Z> 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
>
> ______________________________________________
> 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