Fórum Como corrigir o disparo da mesma trigger no mesmo horario #534631
16/10/2015
0
E essa semana dois usuários conseguiram disparar a mesma trigger no mesmo horario 15:25:30, nunca pensei q fosse possivel no mesmo segundo, por esse motivo não contabilizou o estoque correto. Tem como tratar isso?
CREATE OR ALTER trigger trg_pedido_mov_estoque for pedidos
active after update position 0
AS
declare variable v_produto integer;
declare variable v_qtde integer;
begin
/* Select para pegar a operação da movimentação e o tipo de venda for 1 (VENDA DIRETA)*/
FOR
select
pedidos_itens.prod_id,
pedidos_itens.pi_qtde
from pedidos_itens
where
pedidos_itens.ped_id = old.ped_id
into :v_produto,
:v_qtde
DO
/* INICIO DO NOVO SCRIPT */
/* Se a Operação for uma saída e o tipo de venda for diferente da
pronta-entrega e o status for finalizado */
if ((new.status = 1) and (new.cancelado = 'N') and (new.nfe_id < 1) and (new.tipo_id <> 4)) then
begin
-- Entrada na tabela Estoque
EXECUTE PROCEDURE SP_ESTOQUE_INSERT(:v_produto,
'PEDIDO Nº ' || old.ped_id,
'FINALIZAÇÃO',
NULL,
0,
:v_qtde,
NULL,
NULL,
new.usu_id,
new.loj_id);
end
end
Sidney Abreu
Curtir tópico
+ 0Posts
16/10/2015
Alex Lekao
talvez deva verificar tambem sobre o esquema de transacao, nao sei se seria esse o caso, mas iniciar uma transaction e depois fechar a transaction, acredito que talvez ajude.
como disse nao manjo tao bem dessas coisas, espero que ajude.
Abraco.
Gostei + 0
16/10/2015
Sidney Abreu
Gostei + 0
16/10/2015
Alex Lekao
veja neste link se te ajuda de alguma forma. rsrsr
[url]http://mail.firebase.com.br/pipermail/lista_firebase.com.br/2008-December/057493.html[/url]
eu sei que no sql server, qdo vc abre um transaction, ele coloca todo mundo na fila ate vc fechar a transaction, entao com isso vc corre menos risco deste problema, mas nao eh o meu forte essa area, me ligo mais no select cru. rsrsr
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)