[firebase-br] Trigger não tá fazendo o UPDATE
Romulo Oliveira
romulocpd em yahoo.com.br
Sex Dez 30 13:26:50 -03 2005
Olá amigos,
Tenho uma tabela MOV_ESTOQUE onde ela atualiza o estoque do produto em
outra tabela. Cada lançamento de MOV_ESTOQUE eu digo o saldo anterior,
quantidade movimentada e o saldo atual. A trigger pega este campo SALDO
ATUAL e joga na tabela ESTOQUE.
A Trigger tá assim:
CREATE TRIGGER TG_AOINCMES FOR MOV_ESTOQUE
ACTIVE AFTER INSERT POSITION 0
AS
begin
INSERT INTO LOG VALUES ('EMPRESA = ' || CAST(NEW.MES_EMPRESA AS
VARCHAR(10)) || ' PRODUTO = ' || CAST(NEW.MES_PRODUTO AS VARCHAR(10)) ||
' COR = ' || CAST(NEW.MES_COR AS VARCHAR(10)) || 'TAMANHO = ' ||
CAST(NEW.MES_TAMANHO AS VARCHAR(10)) || ' SALDO ATUAL = ' ||
CAST(NEW.MES_SALDOATUAL AS VARCHAR(20)));
UPDATE
ESTOQUE
SET
ETQ_ATUAL = NEW.MES_SALDOATUAL
WHERE
ETQ_EMPRESA = NEW.MES_EMPRESA AND
ETQ_PRODUTO = NEW.MES_PRODUTO AND
ETQ_COR = NEW.MES_PRODUTO AND
ETQ_TAMANHO = NEW.MES_TAMANHO;
END
Vejam que coloquei eset INSERT numa tabela LOG só pra saber. O
resultado tá assim (da tabela LOG):
EMPRESA = 4 PRODUTO = 10 COR = 1TAMANHO = 1 SALDO ATUAL = 5180.0000
Poxa, pelo comando ele diz a empresa, produto, cor, tamanho e o saldo.
Tudo certinho! Porém o UPDATE ele nao ta executando.
A minha tabela de MOV_ESTOQUE é assim:
CREATE TABLE MOV_ESTOQUE (
MES_CODIGO INTEGER NOT NULL,
MES_EMPRESA INTEGER NOT NULL,
MES_EMPRESAORIGEM INTEGER NOT NULL,
MES_PRODUTO INTEGER NOT NULL,
MES_COR INTEGER NOT NULL,
MES_TAMANHO INTEGER NOT NULL,
MES_DATALANC DATE NOT NULL,
MES_TIPO CHAR(3) NOT NULL,
MES_DOCUMENTO VARCHAR(20),
MES_HISTORICO VARCHAR(60) NOT NULL,
MES_SALDOANTERIOR NUMERIC(18,4) DEFAULT '0',
MES_QTDLANC NUMERIC(18,4) DEFAULT '0',
MES_SALDOATUAL NUMERIC(18,4) DEFAULT '0'
);
Po, já tentei de tudo. Fiz a tabela de log pra ver e ele pega os
valores direito e os registros existem certinho na tabela ESTOQUE.
Vejam a tabela ESTOQUE:
CREATE TABLE ESTOQUE (
ETQ_EMPRESA INTEGER NOT NULL,
ETQ_PRODUTO INTEGER NOT NULL,
ETQ_COR INTEGER NOT NULL,
ETQ_TAMANHO INTEGER NOT NULL,
ETQ_PRECOCUSTO DECIMAL(10,2),
ETQ_FRETE DECIMAL(6,2),
ETQ_IPI DECIMAL(6,2),
ETQ_DIFICMS DECIMAL(6,2),
ETQ_DESPOPER DECIMAL(6,2),
ETQ_ICMS DECIMAL(6,2),
ETQ_LUCRO DECIMAL(6,2),
ETQ_PROMOCAO DECIMAL(6,2),
ETQ_VALIDADEPROMOCAO DATE,
ETQ_PRECOCUSTOGERENCIAL DECIMAL(10,2),
ETQ_PRECOVENDASUGERIDO DECIMAL(10,2),
ETQ_PRECOVENDA DECIMAL(10,2),
ETQ_PRECOVENDAPROMOCAO DECIMAL(10,2),
ETQ_ATUAL DECIMAL(18,4) default 0,
ETQ_RESERVADO DECIMAL(18,4) default 0,
ETQ_COMPRADO DECIMAL(18,4) default 0,
ETQ_DISPONIVEL DECIMAL(18,4) default 0,
ETQ_AVARIADO DECIMAL(18,4) default 0,
ETQ_CONSIGNADO DECIMAL(18,4) default 0,
ETQ_MINIMO NUMERIC(18,4) DEFAULT '0'
);
Vlw pessoal!
Romulo
Mais detalhes sobre a lista de discussão lista