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

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

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:




  

Segunda, 21 de Abril de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Montagem de Micros para Autodidatas, Estudantes e Técnicos


Capa do livro
Use a Cabeça! - Desenvolvendo para iPhone


Capa do livro
Exame de Redes com NMAP





Hostnet

IMD