[firebase-br] Trigger so funciona no ibexpert

Jose Luiz de Medeiros joseluiz em medeirosinfor.com
Qua Jan 20 21:11:14 -03 2010


Colegas..

 

Tenho essa trigger que uso para somar pedidos:

 

CREATE trigger tg_soma_venda for itemvenda

active after insert or update or delete  position 0

AS

begin

if (inserting) then

       execute procedure sp_soma_vendapbruto(new.codvenda);

    else

     begin

   if ((deleting)or(updating)) then

       execute procedure sp_soma_vendapbruto(Old.codvenda);

  end

 end

 

ela executa essa SP:

 

CREATE PROCEDURE SP_SOMA_VENDAPBRUTO (

    idvenda integer)

as

declare variable total_bruto numeric(15,4);

begin 

  SELECT

   SUM(TOTAL)

    FROM itemvenda

  WHERE (codvenda = :idvenda)

  INTO :total_bruto;

 

if (:total_bruto is null) then total_bruto  = 0;

 

 UPDATE venda

 SET PBRUTO = :total_bruto

     where codvenda = :idvenda;

 

Tenho essa procedure para inserir itens de uma venda:

CREATE PROCEDURE SP_ITENSVENDA_BI (

    pcodvenda integer,

    pidprod integer,

    pqtde numeric(15,2),

    pprecounit numeric(15,4),

    pprecototal numeric(15,4))

as

begin

    insert into itemvenda
(CODVENDA,CODPROD,QTDE,PRECOUNIT,PERCDESC,TOTAL,PERCIPI,PERCICMS,OBSPROD,BAI
XAR,DESCITEM,DESCGERAL,SOMA,BAIXOU,COMISSAO,PERC)

     values

 
(:pcodvenda,:pidprod,:pqtde,:pprecounit,0.00,:pprecototal,0.00,0.00,'SEM
OBS..','S',0.00,0.00,0.00,'N',0.00,'A');

 

E o seguinte:

 

Dentro do IBExpert funciona 100%, a medida que vou usando a procedure de
insert ou direto na tabela de itemvenda, consigo somar o totalvenda, mas
quandoi executo essa mesma procedure de dentro do Delphi, o item e inserido
mas não exeuta a soma que e a trigger tg_soma_venda.

 

No Delphi uso IBX, nem quando deleto um item funciona, uso firebird 2.1??

No Delphi uso CommitRetaning.

 

Já tentei somente commit e continua não rodando a trigger.

 

 

Alguem já passou por isso?

 

 

Grato:

Jose Luiz

 




Mais detalhes sobre a lista de discussão lista