[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