Fórum Trigger para calcular...2 #40298

22/11/2003

0

Oi Gente...
Olha só... tentando resolver aquele problema da trigger..
eu criei essa função:

[b:7f5d28b9cc]SET TERM !!;
CREATE PROCEDURE VALORITEM(P_PEDIDO INTEGER,P_ITEM INTEGER) RETURNS
(VALOR FLOAT) AS
BEGIN
FOR SELECT (A.QUANT_ITEM * B.VALOR)
FROM ITENS_PEDIDO A, BATERIAS B,
WHERE A.COD_PEDIDO = :P_PEDIDO
AND COD_ITENS_PEDIDO = :P_ITEM
AND A.COD_BATERIA = B.COD_BATERIA INTO :VALOR DO SUSPEND;
END!!
SET TERM;!![/b:7f5d28b9cc]

e depois quero chamar ela na minha trigger, mas o interbase nao reconhece a função!!!!
[color=green:7f5d28b9cc]A msg de erro é:
SQL error code = -804
Function unknown
VALORITEM[/color:7f5d28b9cc]
[color=red:7f5d28b9cc][b:7f5d28b9cc]ABAIXO SEGUE A TRIGGER:[/b:7f5d28b9cc][/color:7f5d28b9cc]
[b:7f5d28b9cc]SET TERM ^;
CREATE TRIGGER CALCULA_VALOR_PEDIDO_INSERIR FOR ITENS_PEDIDO
ACTIVE AFTER INSERT POSITION 0
AS

DECLARE VARIABLE TOT INTEGER;
BEGIN
FOR SELECT VALORITEM(NEW.COD_PEDIDO,NEW.COD_ITENS_PEDIDO)
FROM pedido COD_PEDIDO = NEW.COD_PEDIDO INTO :TOT DO
UPDATE PEDIDO SET TOTAL_PED = TOTAL_PED + TOT
WHERE COD_PEDIDO= NEW.COD_PEDIDO;
END^
SET TERM ;^[/b:7f5d28b9cc]


Michelli88

Michelli88

Responder

Posts

22/11/2003

Michelli88

DESCULPE... MANDEI A TRIGGER COM ERRO... A QUE ME REFIRO EH ESTA:

[b:1a0a418b5d][color=olive:1a0a418b5d]SET TERM ^;
CREATE TRIGGER CALCULA_VALOR_PEDIDO_INSERIR FOR ITENS_PEDIDO
ACTIVE AFTER INSERT POSITION 0
AS

DECLARE VARIABLE TOT INTEGER;
BEGIN
FOR SELECT VALORITEM(NEW.COD_PEDIDO,NEW.COD_ITENS_PEDIDO)
FROM PEDIDO WHERE COD_PEDIDO = NEW.COD_PEDIDO INTO :TOT DO
UPDATE PEDIDO SET TOTAL_PED = TOTAL_PED + TOT
WHERE COD_PEDIDO= NEW.COD_PEDIDO;
END^
SET TERM ;^[/color:1a0a418b5d][/b:1a0a418b5d]


Responder

Gostei + 0

22/11/2003

Afarias

vc realmente não pode usar o Stored Proc como uma ´funcão´ ... vc irá usá-lo como uma ´tabela´ ::

{...}

FOR SELECT VALOR FROM VALORITEM (NEW.COD_PEDIDO, NEW.COD_ITENS_PEDIDO) INTO :TOT DO
UPDATE PEDIDO SET TOTAL_PED = TOTAL_PED + :TOT
WHERE COD_PEDIDO= NEW.COD_PEDIDO;

{...}


T+


Responder

Gostei + 0

24/11/2003

Michelli88

Afarias muito obrigado querido!!!
Funcionou certinhu, soh tava faltando por
(TOTAL_PED + :TOT) entre parenteses e deu tudo certinhu!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar