O que são Generators no Firebird


Autor/fonte: Drausio Henrique Chiarotti
E-mail/Url: http://www.vivaolinux.com.br/artigo/O-que-sao-Generators-no-Firebird
Tags: [ firebird ]



Digg del.icio.us

O que é um Generator?

Pense no Generator como um contador de inteiros. Contador este que você pode incrementar ou decrementar.

Por exemplo, no Access e no SQL Server, existe um campo chamado autoNumeric/autoIncrement que quando você insere um novo registro em uma tabela, ele cria, automaticamente, um número para aquele registro (aquela tupla), número esse que será igual a: "último número registrado + 1".

Em que contexto pode ser utilizado o Generator, exemplos:

  1. Você tem uma tabela de cadastro de usuários, onde cada usuário terá um código único, o qual é uma chave primária e não pode ser repetido;
  2. Você tem uma Flag muito importante e prefere que ela fique armazenada no banco de dados.


Comandos SQL (Criar, Consultar, ...)

Criando Generator:

O nome do Generator pode ter no máximo 31 caracteres.

Para criar um Generator utilizando SQL:

CREATE GENERATOR <NomeGenerator>;

Exemplo:

CREATE GENERATOR SeqCodUsuario

Para excluir um Generator utilizando SQL:

DROP GENERATOR <GeneratorName> ;

Exemplo:

DROP GENERATOR SeqCodUsuario

Para selecionar o valor do Generator, utiliza-se:

SELECT GEN_ID ( <NomeGenerator>, 0) FROM RDB$DATABASE

Exemplo:

SELECT GEN_ID ( SeqCodUsuario, 0) FROM RDB$DATABASE

OBS: RDB$DATABASE é uma tabela padrão contida no banco de dados. O valor 0 (zero) é o incremento, ou seja, não incrementa.

Para incrementar o valor do Generator, utiliza-se:

SELECT GEN_ID ( <NomeGenerator>, 1) FROM RDB$DATABASE

Exemplo:

SELECT GEN_ID ( SeqCodUsuario, 1) FROM RDB$DATABASE

Obs.: RDB$DATABASE é uma tabela padrão contida no banco de dados. O valor 1 é o incremento, ou seja, incrementa um.

Para DECREMENTAR o valor do Generator, utiliza-se:

SELECT GEN_ID ( <NomeGenerator>, -1) FROM RDB$DATABASE

Exemplo:

SELECT GEN_ID ( SeqCodUsuario, -1) FROM RDB$DATABASE

Para SETAR um valor no Generator, utiliza-se:

SET GENERATOR <GeneratorName> TO <newvalue>;

Exemplo:

SET GENERATOR SeqCodUsuario TO 2;

Dicas

Um caso de uso para o Generator:

Você está fazendo um cadastro de usuários.

  • No botão inserir, ou seja, quando você inserir, incrementa o Generator;
  • No botão consultar, você seleciona o Generator e exibe ele na tela.


A utilização dos Generators pode facilitar muito na hora de programar e administrar os códigos e as chaves primárias.

Você pode encontrar informações sobre os Generator no site:

http://www.fingerbird.de/generatorguide_body.htm#What_is_a_generator




Enviado por Jotah em 21/01/2009 às 22:51


Itens relacionados

Remoção de constraint no Firebird
Triggers no Firebird
Firebird, fazendo valer o lado do servidor
Instalando o ibWebAdmin
Strings de conexão ao Firebird
Instalando Firebird 2 com FreeAdhocUDF no Debian

Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Terça, 30 de Junho de 2015




Leitura recomendada

Windows 7 Sem Limites

Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Questões Comentadas de Informática para Concurso Público na Área de Tecnologia da Informação


Capa do livro
Projeto de Banco de Dados


Capa do livro
Scrum em Ação - Gerenciamento e Desenvolvimento Ágil de Projetos de Software





Hostnet

IMD