Como chamar uma trigger?
Boa tarde galera...
Estou utilizando o firebird 2.0 e delphi 7 com componente dbexpress
Estou desenvolvendo para impressão de NF. Preciso limitar para que cadastre apenas 20 itens na NF.
Achei este Trigger da matéria do CESAR BLUMM da SQL Magazine...
Listagem 3. Trigger para o Firebird
Create Exception Nota_Cheia ´A nota já está cheia. Inclusão cancelada.´;
Create Trigger TR_IN_ITEM
For ITEM
After Insert
as
Declare LTOTALITENS INTEGER;
Declare LNOTA INTEGER;
Begin
-- Seleciona o código da nota que está sendo incluída.
LNOTA = New.IDNOTA;
-- Totaliza a quantidade de itens já cadastrados na nota.
Select COUNT(*)
From ITEM
Where IDNOTA = :LNOTA
Into :LTOTALITENS;
-- Verifica se existem mais do que 30 itens na nota.
If (LTOTALITENS > 30) Then
Begin
Exception Nota_Cheia;
End
End
Mais agora eu preciso saber como colocar isto no delphi...
Como devo fazer....
Como devo fazer para mostrar no delphi as mensagens do Trigger falando que já deu o limite....
E assim por diante, alguem pode me ajudar?
Obrigado.
Uelinton
Estou utilizando o firebird 2.0 e delphi 7 com componente dbexpress
Estou desenvolvendo para impressão de NF. Preciso limitar para que cadastre apenas 20 itens na NF.
Achei este Trigger da matéria do CESAR BLUMM da SQL Magazine...
Listagem 3. Trigger para o Firebird
Create Exception Nota_Cheia ´A nota já está cheia. Inclusão cancelada.´;
Create Trigger TR_IN_ITEM
For ITEM
After Insert
as
Declare LTOTALITENS INTEGER;
Declare LNOTA INTEGER;
Begin
-- Seleciona o código da nota que está sendo incluída.
LNOTA = New.IDNOTA;
-- Totaliza a quantidade de itens já cadastrados na nota.
Select COUNT(*)
From ITEM
Where IDNOTA = :LNOTA
Into :LTOTALITENS;
-- Verifica se existem mais do que 30 itens na nota.
If (LTOTALITENS > 30) Then
Begin
Exception Nota_Cheia;
End
End
Mais agora eu preciso saber como colocar isto no delphi...
Como devo fazer....
Como devo fazer para mostrar no delphi as mensagens do Trigger falando que já deu o limite....
E assim por diante, alguem pode me ajudar?
Obrigado.
Uelinton
Uelinton_reis
Curtidas 0
Respostas
Osocram
30/08/2009
Amigo, pelo que vejo vc não conhece trigger.
Trigger (gatilho) como o nome diz, ele vai disparar automaticamente qdo se cumpri uma condição. Nesse seu caso a condição é apenas o AfterInsert.
Então ele vai sempre disparar assim que vc salvar o item no banco.
====================================
Eu acho que o melhor seria vc validar isso no proprio delphi, antes de salvar o registro no banco, vc faz um count no itens. Ou até mesmo no momento de inserir cada Item (no delphi) vc ja verifica se ele ainda pode inserir mais um.
Trigger (gatilho) como o nome diz, ele vai disparar automaticamente qdo se cumpri uma condição. Nesse seu caso a condição é apenas o AfterInsert.
Então ele vai sempre disparar assim que vc salvar o item no banco.
====================================
Eu acho que o melhor seria vc validar isso no proprio delphi, antes de salvar o registro no banco, vc faz um count no itens. Ou até mesmo no momento de inserir cada Item (no delphi) vc ja verifica se ele ainda pode inserir mais um.
GOSTEI 0