[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