[firebase-br] Probleminha com Stored Procedure
Marco Aurélio Tomaz
marcoaureliotomaz em gmail.com
Qui Set 29 08:50:06 -03 2005
Olá usuários de Firebird.
Tenho uma tabela que toda vez que ela tem um registro inserido ela
executa essa triger:
CREATE TRIGGER VENDA_BI FOR VENDA
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.CODIGO IS NULL) THEN
NEW.CODIGO = GEN_ID(GEN_VENDA_ID,1);
execute procedure box_estoque_saida (NEW.box, NEW.produto,NEW.QTD);
END
Como vocês podem notar existe uma stored procedure, ela atuliza o
estoque de um box, a questão que após inserir um registro, executar a
trigger, rodar a stored procedure, quando visualizo ainda pela
aplicação num relatório ou na tela de estoque, o mesmo não foi
atualizado, mas quando saiu da aplicação e retorno pra ela, pronto, o
sistema já vê os números atualizados...o que está havendo ?
só pra efeito, chamo essa mesma procedure pela aplicação em outro
ponto e ela funciona...será que tem algo haver com a trigger ?
Abaixo coloco a stored procedure :
CREATE PROCEDURE BOX_ESTOQUE_SAIDA (
BOX INTEGER,
PRODUTO INTEGER,
QTD NUMERIC(9,2))
AS
BEGIN
IF (EXISTS(SELECT BOX FROM BOX_ESTOQUE WHERE (BOX = :BOX) AND
(PRODUTO = :PRODUTO))) THEN
UPDATE BOX_ESTOQUE
SET QTD = QTD - :QTD
WHERE (BOX = :BOX) AND (PRODUTO = :PRODUTO);
ELSE
INSERT INTO BOX_ESTOQUE (
BOX,
PRODUTO,
QTD)
VALUES (
:BOX,
:PRODUTO,
:QTD);
END
Gostaria de saber se preciso mudar algo no banco ou na aplicação. uso
ZeosLib + Delphi 7 + Firebird 1.5.
Obrigado pela atenção
Mais detalhes sobre a lista de discussão lista