Re: [firebase-br] Ajuda sobre trigger. Como faço para uma trigger incrementa um generato

Felipe Giotto felipe em metasoftware.com.br
Ter Jul 26 10:58:00 -03 2005


Olá, Carlos e Benedetti!!

Depois de alguns testes com o meu ínfimo conhecimento sobre triggers, 
consegui implementá-la, sem precisar criar campos adicionais!! Mais uma 
vez, não sei se essa é a maneira correta de fazer isto, mas é possível 
fazer o SELECT e jogar o resultado dentro de uma variável local, a 
trigger ficaria assim:

CREATE TRIGGER ATUALIZAR_AGENDA FOR AGENDA_CONSULTA
ACTIVE BEFORE INSERT POSITION 0 AS
    DECLARE VARIABLE LIXO INTEGER;
    BEGIN
        SELECT GEN_ID(ATUALIZAR_GEN, 1) FROM RDB$DATABASE INTO LIXO;
    END

Espero ter ajudado!

Um grande abraço a todos, especialmente para o meu ex-colega de facul, o 
Benedetti!!! :D

Felipe Giotto ;-)



Giovani Benedetti Penha escreveu:

> Vixe Carlos, fiz uns testes aqui e constatei que ele não deixa usar 
> select dentro da trigger. Pelo menos não envolvendo o gen_id...
>
> Acho que você vai ter que criar um campo "laranja" pra receber o valor 
> do gen_id, incrementando assim o valor do generator:
> new.laranja = gen_id(generator, 1)
>
> É um campo a mais na tabela, mas não vejo outra solução.
>
> []´s
> Giovani Benedetti Penha
>
> Carlos Alberto dos santos escreveu:
>
>> o erro é esse
>>
>> Dynamic SQL Error
>> SQL error code = -104
>> Token unknown - line 5, char 45
>> ;
>> Statement: CREATE TRIGGER ATUALIZAR_AGENDA FOR AGENDA_CONSULTA
>> ACTIVE BEFORE INSERT POSITION 0
>> AS
>> BEGIN
>> SELECT GEN_ID(ATUALIZAR, 1) FROM RDB$DATABASE;
>> END;
>>
>>> From: Giovani Benedetti Penha <giovani em cooperval.com>
>>> Reply-To: FireBase <lista em firebase.com.br>
>>> To: FireBase <lista em firebase.com.br>
>>> Subject: Re: [firebase-br] Ajuda sobre trigger. Como faço para uma 
>>> trigger incrementa um generato
>>> Date: Tue, 26 Jul 2005 09:36:37 -0300
>>>
>>> Posta o erro. Fica mais fácil de detectar o que está acontecendo.
>>>
>>> []´s
>>> Giovani Benedetti Penha
>>>
>>> Carlos Alberto dos santos escreveu:
>>>
>>>> Seria assim ex: Dá erro.
>>>>
>>>> SET TERM ^;
>>>> CREATE TRIGGER ATUALIZAR_AGENDA FOR AGENDA_CONSULTA
>>>> ACTIVE BEFORE INSERT POSITION 0
>>>> AS
>>>> BEGIN
>>>> SELECT GEN_ID(ATUALIZAR, 1) FROM RDB$DATABASE;
>>>> END;
>>>> ^
>>>>
>>>>> From: Felipe Giotto <felipe em metasoftware.com.br>
>>>>> Reply-To: FireBase <lista em firebase.com.br>
>>>>> To: FireBase <lista em firebase.com.br>
>>>>> Subject: Re: [firebase-br] Ajuda sobre trigger. Como faço para uma 
>>>>> trigger incrementa um generato
>>>>> Date: Tue, 26 Jul 2005 09:26:07 -0300
>>>>>
>>>>> Não sei se o SELECT na trigger é a melhor maneira de fazer isso, 
>>>>> mas você pode tentar colocar isto dentro da trigger:
>>>>>
>>>>> SELECT GEN_ID(ATUALIZAR, 1) FROM RDB$DATABASE
>>>>>
>>>>> Espero ter ajudado,
>>>>>
>>>>> Felipe Giotto ;-)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Carlos Alberto dos santos escreveu:
>>>>>
>>>>>> Preciso que funcione com trigger. Obrigado!!!
>>>>>>
>>>>>>> From: Giovani Benedetti Penha <giovani em cooperval.com>
>>>>>>> Reply-To: FireBase <lista em firebase.com.br>
>>>>>>> To: FireBase <lista em firebase.com.br>
>>>>>>> Subject: Re: [firebase-br] Ajuda sobre trigger. Como faço para 
>>>>>>> uma trigger incrementa um generato
>>>>>>> Date: Tue, 26 Jul 2005 09:01:25 -0300
>>>>>>>
>>>>>>> Tenta
>>>>>>> select * from gen_id(atualizar,1)
>>>>>>>
>>>>>>> []´s
>>>>>>> Giovani Benedetti Penha
>>>>>>>
>>>>>>> Carlos Alberto dos santos escreveu:
>>>>>>>
>>>>>>>> desse jeito da erro: Por Favor, ajudem
>>>>>>>>
>>>>>>>> SET TERM^;
>>>>>>>> CREATE TRIGGER ATUALIZAR_AGENDA FOR CONSULTA_AGENDA
>>>>>>>> ACTIVE BEFORE INSERT POSITION 0
>>>>>>>> AS
>>>>>>>> BEGIN
>>>>>>>>  GEN_ID(ATUALIZAR,1);
>>>>>>>> END;
>>>>>>>> ^
>>>>>>>>
>>>>>>>>> From: "Carlos Alberto dos santos" <sdcarlosalberto em hotmail.com>
>>>>>>>>> Reply-To: FireBase <lista em firebase.com.br>
>>>>>>>>> To: lista em firebase.com.br
>>>>>>>>> Subject: [firebase-br] Ajuda sobre trigger. Como faço para 
>>>>>>>>> uma  trigger incrementa um generato
>>>>>>>>> Date: Tue, 26 Jul 2005 08:47:34 -0300
>>>>>>>>>
>>>>>>>>> Ajuda sobre trigger. Como faço para  uma trigger incrementar 
>>>>>>>>> um generator toda vez que disparar um insert ou update. Não 
>>>>>>>>> preciso jogar o valor no campo codigo de uma tabela só preciso 
>>>>>>>>> que o generator fique sendo incrementado. Obrigado amigos"""
>>>>>>>>>
>>>>>>>>> _________________________________________________________________
>>>>>>>>> Chegou o que faltava: MSN Acesso Grátis. Instale Já! 
>>>>>>>>> http://www.msn.com.br/discador
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ______________________________________________
>>>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>>>>>>> Para editar sua configuração na lista, use o endereço 
>>>>>>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 
>>>>>>>>>
>>>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _________________________________________________________________
>>>>>>>> MSN Messenger: converse online com seus amigos .  
>>>>>>>> http://messenger.msn.com.br
>>>>>>>>
>>>>>>>>
>>>>>>>> ______________________________________________
>>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>>>>>> Para editar sua configuração na lista, use o endereço 
>>>>>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ______________________________________________
>>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>>>>> Para editar sua configuração na lista, use o endereço 
>>>>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _________________________________________________________________
>>>>>> Chegou o que faltava: MSN Acesso Grátis. Instale Já! 
>>>>>> http://www.msn.com.br/discador
>>>>>>
>>>>>>
>>>>>> ______________________________________________
>>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>>>> Para editar sua configuração na lista, use o endereço 
>>>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>>
>>>>>>
>>>>>
>>>>> ______________________________________________
>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>>> Para editar sua configuração na lista, use o endereço 
>>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>>>
>>>>
>>>> _________________________________________________________________
>>>> MSN Messenger: converse online com seus amigos .  
>>>> http://messenger.msn.com.br
>>>>
>>>>
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>>> Para editar sua configuração na lista, use o endereço 
>>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>> Para editar sua configuração na lista, use o endereço 
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>>
>> _________________________________________________________________
>> MSN Messenger: converse online com seus amigos .  
>> http://messenger.msn.com.br
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>




Mais detalhes sobre a lista de discussão lista