[firebase-br] Problema com TRigger - muitas execuções concorrentes da mesma requisicao
NextCorp Informática
nextcorp em terra.com.br
Seg Jun 11 01:02:23 -03 2007
Caros colegas
Estou quebrando com esta triggr há dias, alguém poderia informar o por que
está dando este erro.
Tenho uma tabela emprestimos e outra emprestimos_itens. (master-detail)
Lanço alguns valores na tb emprestimo_itens que calcula alguns acréscimos
para ser lançado depois na ultima parcela com seus acrescimos e diferenças
pagas a mais ou a menos. Nesta parte tudo ok.
O problema está na trigger abaixo, pois ao dar o post, imaginei que pudesse
disparar a trigger abaixo para fazer algumas operacoes e depois atualizar o
valor da ultima parcela, ms me dá este erro, visto que estou tentando
atualizar um registro da mesma tb que sofreu o post.
Não é possivel apos o post tentar atualizar alguns registro da mesma tabela
?????
CREATE TRIGGER TR_EMPR_AU0 FOR EMPRESTIMOS_ITENS
ACTIVE AFTER UPDATE POSITION 0
AS
declare variable wv_item Integer;
declare variable wv_total_acrescimos numeric(15,2);
declare variable wv_valor_parcela numeric(15,2);
begin
-- soma tudo que foi pago
select sum(empi_valor_parc - empi_valor_pago + empi_valor_acres)
from emprestimos_itens
where empi_controle = old.empi_controle and empi_pago = 'S'
into :wv_total_acrescimos;
if (:wv_total_acrescimos is null) then
wv_total_acrescimos= 0.00;
-- pega a ultima parcela
select max(empi_itens), empi_valor_parc
from emprestimos_itens
where empi_controle = old.empi_controle
group by empi_valor_parc
into :wv_item, :wv_valor_parcela;
update emprestimos_itens set
empi_valor_parc = (:wv_valor_parcela + :wv_total_acrescimos)
where empi_itens = :wv_item;
end
Já não sei mais oque fazer, visto que já mudei está trigger diversas vezes
tentando de tudo, oque estou fazendo de errado, não consegui definir o por
que de não deixar atualizar a mesm tb depois de um post efetuado.
Atenciosamente
Washington André Muller da Silva
#######################
NextCorp Informática
www.nextcorp.com.br
nextcorp em terra.com.br
0-XX-(51)-3589-3690
#######################
Mais detalhes sobre a lista de discussão lista