SET TERM ^ ;

CREATE TRIGGER <NomeDaTrigger> FOR Viagem
ACTIVE AFTER UPDATE POSITION 0
AS
begin
   update Historico_Viagem HV set
     HV.dt_Inicio = new.dt_inicio,
     HV.dt_Fim    = new.dt_fim,
     HV.horario   = new.horario
   where
     HV.Cod       = Old.cod
end
^
SET TERM ; ^

Isto supondo que o "COD" seja sua chave primÃria e que seja igual para as  
duas tabelas.

Triggers sÃo acionadas automaticamente(caso esteja ativa) apÃs um evento  
ocorrido com a tabela que està relacionada.

No exemplo acima por exemplo, ela ser ativada DEPOIS que a tabela "Viagem"  
for ALTERADA.
Consequentemente nÃo ha necessidade de ser ativada pelo delphi.

Obs:
   1 ) - A criaÃÃo da trigger foi feita para o Firebird/Interbase. Se vc  
usa outro banco, a sitaxe pode ser diferente.
   2 ) - Se eu estiver errado, alguem me corrige pq faz um tempo que eu num  
crio uma trigger.

Valeu

---
   Daniel A. Bastos /:,]

Em Wed, 06 Oct 2004 20:05:12 -0000, er83pet04 <[EMAIL PROTECTED]> escreveu:

>
>
> Pessoal,
>
> Estou com um problema, alguÃm pode me ajudar???
>
> Tenho a tabela:
>
> VIAGEM(COD, DT_INICIO, DT_FIM, HORARIO, ...)
>
> e uma outra tabela chamada:
>
> HISTORICO_VIAGEM(COD, DT_INICIO, DT_FIM, HORARIO, ...)
>
> A tabela HISTORICO_VIAGEM deve guardar todas as movimentaÃÃes
> (alteraÃÃes e/ou exclusÃes) que forem feitas na tabela VIAGEM.
> Ou seja quando o usuÃrio tentar alterar o valor do campo DT_INICIO
> ou de qualquer outra o trigger deve ser disparado.
> Tentei criar um trigger para ser disparado ao deletar ou alterar um
> dado na tabela viagem mas nÃo està dando certo.
> Como deve ser esse trigger? Ele deve copiar os campos da tabela
> viagem para o histÃrico? Como?
> Como disparo ele na minha aplicaÃÃo, pelo Delphi?



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que vocà faz do Yahoo! Grupos està sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a