[firebase-br] Probleminha com Stored Procedure
Marcilio Soares
marciliosoares em yahoo.com.br
Sáb Out 1 09:59:29 -03 2005
Faltou o SUSPEND antes do ultimo END
"Marco Aurélio Tomaz"
<marcoaureliotomaz em gmail.com> wrote in message
news:3bb314db05092904502622608c em mail.gmail.com...
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
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista