[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