[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