Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

Quick Tips : Triggers em Firebird

Triggers em Firebird

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login

(opcional) Onde podemos melhorar?

Confirmar voto
0
 (4)  (0)


Olá pessoal, hoje veremos como criar triggers em Firebird.

Trigger nada mais são do que “gatilhos”que são disparados após um determinado evento em uma tabela.

As triggers podem definidas para execução antes ou depois das operações de insert, update e delete na tabela.

Um bom exemplo de uso de trigger é o controle de integridade de dados no banco, apesar de recomendar o uso de bases da dados apenas como repositório, sei que a realidade de muitos projetos aí envolve muita lógica em bancos de dados, por isso resolvi escrever essa quick tip.




Na nossa trigger de exemplo, antes de um cliente ser alterado(before update), nós verificamos se o código dele foi modificado, acessando os campos cod_cliente das estruturas internas old e new da trigger.

O old guarda as informações de antes do update e o new guarda as novas informações, que serão persistidas.

No nosso caso, se houver alteração do código do cliente, nós fazemos uma consulta na tabela de pedidos para ver se este cliente que teve o código alterado possui pedidos vinculados.

Após o select, temos o into, que serve par indicar para o firebird, para onde vai o valor retornado na consulta, no nosso caso vai para a variável vcount. Caso tenha pedidos vinculados, nós fazemos então o update na tabela de pedidos.

Bom pessoa, é claro que poderíamos usar chaves estrangeiras, ID’s únicos ou até mesmo integridade na aplicação, mas o objetivo foi mostrar como funciona a estrutura básica de uma trigger no firebird, sendo o exemplo apresentado apenas de fins didáticos.

É isso aí pessoal, até a próxima quickTip.

Um Abraço
Ricardo Coelho.



 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ajude-nos a evoluir: você gostou do post?  (4)  (0)

(opcional) Onde podemos melhorar?

Confirmar voto
Compartilhe:
Ficou com alguma dúvida?