[firebase-br] Usando Trigger + Generator

Erico Teixeira erico em centroin.com.br
Qua Mar 1 23:21:50 -03 2006


Olá Caio 

Eu tinha feito algo parecido com isso, mas eu obtenho um erro dizendo que o
meu campo id nao pode ser nulo, é como se ele nao estivesse nem passando pela
trigger

Eu criei outras triggers para Afeter_Insert e Before_Update mas ocorre o mesmo.

[]s
Érico

Caio Oliveira wrote:
> 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