[firebase-br] RES: disparar uma trigger

Eduardo Resek eresek em projesom.com.br
Ter Nov 21 12:19:31 -03 2006


Você não pode atualizar a própria tabela num trigger "AFTER" insert ou
update. Tem que ser num trigger "BEFORE". Os triggers "AFTER" servem para
realizar alguma operação em outras tabelas apenas.

Eduardo Resek

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de celfcam
Enviada em: segunda-feira, 20 de novembro de 2006 21:06
Para: lista
Assunto: Re: [firebase-br] disparar uma trigger

bom dia Mario

   desculpe a demora em responder, na verdade este é meu primeiro sistema
com FB 1.5 e delphi 7 com dbexpress e depois de encontrar o fio da meada e
conseguir parte do que pretendo implementar, cheguei a conclusão que devo
"RALAR MUITO" ou seja vou degustar todo o material que consegui a respeito,
agora com certeza algum dia voltaremos a falar sobre este ou outro assunto e
se eu precisar de ajuda com certeza dou um grito para você e galera da
lista.
    Agora a trigger que não estava funcionando nem mesmo no Ibexpert é esta

SET TERM ^ ;


CREATE TRIGGER ATU_TOTALDEBITO FOR CONTACAIXAMOV
ACTIVE AFTER INSERT DELETE POSITION 0
AS
BEGIN

     UPDATE CONTACAIXA
     SET TOTALDEBITO = TOTALDEBITO + CONTACAIXAMOV.VALOR
     WHERE CONTACAIXA.CODIGO = CONTACAIXAMOV.CONTADEBITO;
 
    
  /* Trigger text */
END
^


SET TERM ; ^

   mario isto é só o começo, acho que vou gostar do que vem por ai!

   um abraço, e muito obrigado por enquanto
   o meu muito obrigado ao pessoal da lista




> Ola,
> 
> TRIGGER, em portugues é GATILHO, e é disparada sempre após uma AÇÃO!
> 
> Portanto vc não pode usar uma TRIGGER como uma STP.
> 
> Você deve atribuir a ela uma ação, por exemplo:
> BEFORE INSERT - neste caso sempre antes de inserir algum dado em uma
> tabela ele executa a tal trigger!
> 
> Outra coisa, faltou vc mostrar a trigger no qual "não executa pelo
> fb1.5"
> 
> Valeu
> Mario H.
> 
> 
> 
> Em Sáb, 2006-11-18 às 10:36 -0200, celso franco de camargo escreveu:
> > Bom dia Pessoal
> > 
> > 
> >        Quais são os procedimentos ou configurações no BD necessárias
para que seja disparada uma trigger?
> >         Infelizmente no FB 1.5 que utilizo não consigo que seja
disparadas é como se elas não existissem, ou seja não da nenhuma mensagem de
sucesso ou fracasso.
> > 
> > tenho duas tabelas simples,
> > 
> > CONTAMOV
> > 
> > CODIGO - INT
> > DATA - DATE
> > HORA - TIME
> > HISTORICO - VARCHAR
> > CONTADEBITO - INT
> > CONTACREDITO - INT
> > VALOR - NUM (15,2)
> > 
> > CONTA
> > 
> > CODIGO - INT
> > DATA - DATE
> > GRUPO - INT
> > DESCRICAO - CHAR
> > TOTALDEBITO - NUM(15,2)
> > TOTALCREDITO - NUM(15,2)
> > SALDO - NUM(15,2)
> > 
> > o objetivo da trigger é atualizar a tabela conta nos campos totaldebito,
totalcredito e saldo considerando os lancamentos na tabela contamov nos
campos contadebito, contacredito e valor sendo os seguintes campos de mesmo
conteudo :
> > 
> > conta.codigo = contamov.contadebito
> > conta.codigo = contamov.contacredito
> > 
> > se alguem puder me ajudar ou indicar onde conseguir tal informação
agradeço e muito!!
> > 
> > celso
> > 
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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
> 


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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