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

Zottis zottissistemas em brturbo.com.br
Sex Dez 12 11:41:13 -03 2008


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 





Mais detalhes sobre a lista de discussão lista