[firebase-br] RES: Como consigo resolver

Jose Aparecido da Silva joseasilva em bol.com.br
Seg Jan 18 23:26:42 -03 2010


Você está tentando alterar a tabela de venda novamente e isso irá provocar
erro.
Se entendi o que você quer, faz assim:
Mude a trigger para before.

CREATE trigger trg_somavenda_pbruto for venda
active before update position 0
AS
declare variable total numeric(15,4);
begin
  select sum(totalliq)from itemvenda I
  where I.codvenda = new.codvenda
  into :total;
if(coalesce(total,0) > 0)then new.pbruto = total;


[ ]'s
Jose Aparecido da Silva
Fasystem

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Jose Luiz de Medeiros
Enviada em: segunda-feira, 18 de janeiro de 2010 22:27
Para: lista em firebase. com. br
Assunto: [firebase-br] Como consigo resolver

Colegas..

 

Tenho numa tabela de venda o campo PBRUTO, que preciso somar os itens
referentes a aquela venda. Tentei criar essa trigger mas não deu certo.
Consigo cria-la mas quando rodo me da um erro:

 

CREATE trigger trg_somavenda_pbruto for venda

active after update position 0

AS

declare variable total numeric(15,4);

begin

  select sum(totalliq)from itemvenda I

  where I.codvenda = old.codvenda

  into :total;

if(:total is null)then

   total = 0.00;

if(:total > 0)then

  begin

  update venda v set v.pbruto = :total

  where

  v.codvenda = old.codvenda;

 

  end

 

end

 

Como sou novo em Firebird, alguém poderia me dizer se faço isso usando
trigger ou procedure, se for trigger me dizer onde eu errei?

 

Grato:

 

Jose Luiz

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista