[firebase-br] Usando Trigger + Generator

Caio Oliveira news em caiosistemas.com.br
Qua Mar 1 17:00:39 -03 2006


Olá Érico,

Segue um exemplo abaixo:

Érico M. Teixeira escreveu:
> Boa Tarde Lista,
> 
> Como faço para utilizar triggers com generators em uma aplicação com 
> firebird 1.5 com delphi 7 ?
> 

1.Crie um Generator para a tabela:
Ex.:

CREATE GENERATOR GEN_SUATABELA;

2.Crie uma TRIGGER para a tabela
Ex.:

SET TERM ^ ;

^
CREATE TRIGGER TG_INCREMENTO FOR SUATABELA
ACTIVE BEFORE INSERT POSITION 0
AS
  BEGIN
      if (NEW.ID IS NULL) then
      NEW.ID = GEN_ID( GEN_SUATABELA, 1);
  END
^

SET TERM ; ^

> Por exemplo, se eu tenho uma tabela de produtos e quero utilizar um id 
> com auto-incremento para cada produto que for cadastrado.
> 
> Daí no form de cadastro de produtos eu associo os campos da tabela com 
> quantos dbedit forem necessários com exceção do id da tabela.
> 
> Para realizar o cadastro eu coloco o Clientdataset em modo de Insert e 
> após todos os campos preenchidos eu executo o comando Apllyupdate(-1).
> 
> Como posso fazer para que qdo eu execute o Apllyupdate o programa ative 
>   uma trigger no banco e esta atribua o valor para o id ?
> 

O resto é por conta do banco de dados; quando o registro for incluso, o 
campo "ID" conforme exemplo acima será sempre atualizado com o próximo 
valor do generator.

Sds, Caio Oliveira





Mais detalhes sobre a lista de discussão lista