[firebase-br] Alterar Generator dentro de Stored Procedure

Felipe Giotto felipe em metasoftware.com.br
Qui Out 6 12:53:58 -03 2005


Tem uma solução mais fácil, fazendo só um SELECT, não precisa nem de 
SP!!!! Montei esse SQL algum tempo atrás e normalmente eu faço desse 
jeito quando tenho que gravar o valor máximo de uma tabela em um 
generator.... :D
Tente dessa forma:

SELECT GEN_ID(NOME_GEN, (SELECT MAX(CAMPO) FROM TABELA) - 
GEN_ID(NOME_GEN,0)) FROM RDB$DATABASE

Espero ter ajudado,

Felipe Giotto ;-)



Valdir Marcos wrote:

>Caso sirva para mais alguém, veja a solução que eu fiz.
>Ela vê primeiro o maior número na tabela, depois corrigi o generator.
>
>/**********************************************************/
>/*               P063 - Procedure sp_Generator            */
>/**********************************************************/
>
>Drop Procedure sp_Generator;
>Commit;
>
>Set Term ^;
>Create Procedure sp_Generator(Tabela  VarChar(100), 
>                              Campo   VarChar(100), 
>                              Gerador VarChar(100))
>Returns ( iGerador Integer) 
>as
>begin
>  Execute Statement 'Select Coalesce(Max(' || Campo || '),0) From ' || Tabela Into :iGerador;
>  Execute Statement 'Set Generator ' || Gerador || ' to ' || :iGerador || ';';
>  Suspend;
>end^
>
>Set Term ^;
>Commit;
>**********************************************
>
>Commit;
>Select * From sp_Generator('AgendaOperador', 'CodAgO', 'gnt_CodAgO');
>
>
>
>No iBest, suas horas navegadas valem pontos que podem ser trocados por prêmios. Sem sorteio! Inscreva-se já! www.navegueeganhe.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 antiga
>





Mais detalhes sobre a lista de discussão lista