[firebase-br] Generetor

W O sistemas2000profesional em gmail.com
Sex Dez 14 11:07:01 -03 2012


Excelente rutina Daniel, la agregaré a mi arsenal, será muy útil.

Saludos.

Walter.



On Fri, Dec 14, 2012 at 8:50 AM, Tecnobyte Informática <
temp2 em tecnobyte.com.br> wrote:

> Isto deve te ajudar:
>
> --- Início do SQL ---
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE SP_UpdateSequences AS
> DECLARE VARIABLE TableName VARCHAR(50);
> DECLARE VARIABLE FieldName VARCHAR(50);
> DECLARE VARIABLE SequenceName VARCHAR(50);
> DECLARE VARIABLE MaxValue BIGINT;
> DECLARE VARIABLE SQLCommand VARCHAR(200);
> BEGIN
>  FOR
>    SELECT
>      TRIM(R.RDB$RELATION_NAME),
>      TRIM(F.RDB$FIELD_NAME),
>      TRIM(G.RDB$GENERATOR_NAME)
>    FROM RDB$RELATIONS AS R
>    JOIN RDB$RELATION_FIELDS AS F ON F.RDB$RELATION_NAME =
> R.RDB$RELATION_NAME
>    JOIN RDB$GENERATORS AS G ON G.RDB$GENERATOR_NAME =
>      'SQ_' || TRIM(R.RDB$RELATION_NAME) || '_' || TRIM(F.RDB$FIELD_NAME)
>    INTO :TableName, :FieldName, :SequenceName
>  DO
>  BEGIN
>    SQLCommand = 'SELECT MAX(' || FieldName || ') FROM ' || TableName;
>    EXECUTE STATEMENT SQLCommand INTO MaxValue;
>    SQLCommand = 'ALTER SEQUENCE ' || SequenceName || ' RESTART WITH ' ||
> COALESCE(MaxValue, 0);
>    EXECUTE STATEMENT SQLCommand;
>  END
> END^
>
> SET TERM ; ^
>
> EXECUTE PROCEDURE SP_UpdateSequences;
>
> --- Fim do SQL ---
>
> Neste exemplo todod generatores (sequendes) possui nomes neste formato:
>
> SQ_NomeDaTabela_NomeDoCampo
>
> Atenciosamente.
>
> Daniel P. Guimarães
> Tecnobyte Informática
> www.tecnobyte.com.br
>
> -----Mensagem Original----- From: Guto & Michellane Araújo
> Sent: Thursday, December 13, 2012 7:01 PM
> To: FireBase
> Subject: [firebase-br] Generetor
>
>
> Boa noite,
>
> Queria um comando para atualizar o Generator de todas as tabelas do db
>
> de acordo com o numero de registros.
>
> Exemplo:
>
> A tabela produtos tem 10 registros porem seu generetor esta 15, quero que
> no próximo incremento seja 11
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



Mais detalhes sobre a lista de discussão lista