Bom demais para o IE
Topo
Menu Content/Inhalt
Home arrow Artigos arrow Banco de Dados arrow Utilizando Generator no Firebird ou Interbase
Google

Firefox

free links Links to web promotion resources  Technolgy  Free Gospel Music  Charlotte Babb  CATERING TRAILERS

Estatísticas

Membros: 145
Notícias: 866
Weblinks: 56

web stats
Conteúdo sob licença Creative Commons

PageRank



Obtenha visualizações gratuitas no Snap.com




RSS - InfoHome Web Site
Utilizando Generator no Firebird ou Interbase PDF Imprimir E-mail del.icio.us technorati Translate to english
Avaliação do Usuário: / 1
PiorMelhor 
26 de julho de 2008

Veja de uma forma bastante simplificada o uso de Generators no Interbase/Firebird.

Obter o valor de um generator

Para obter o valor de um generator devemos usar a função GEN_ID do InterBase/FireBird. A sintaxe é:

GEN_ID(NomeDoGenerator, Incremento);

Exemplos:
GEN_ID(Gen_Cliente, 1);
GEN_ID(Gen_Cliente, 0);


No primeiro exemplo o generator será incrementado e o novo valor será retornado. Já no segundo exemplo o generator não será incrementado e seu valor atual será retornado.

Dentro de um trigger podemos atribuir o valor de um generator a um campo da tabela, como mostra o exemplo a seguir:

CREATE TRIGGER TRIG_Cliente FOR Cliente BEFORE INSERT AS
BEGIN
NEW.Codigo = GEN_ID(Gen_Cliente, 1);
END^


Para obter o valor de um generator através de uma aplicação, podemos executar o comando SELECT mostrado a seguir sobre uma tabela que possua apenas um registro:

SELECT GEN_ID(NomeDoGenerator, 1) FROM NomeTabela

Onde NomeTabela é o nome de uma tabela do banco de dados que precisa ter um, e somente um, registro. Geralmente usamos a tabela de sistema RDB$DATABASE para este propósito. Eis um exemplo:

SELECT GEN_ID(Gen_Cliente_Codigo, 1) FROM RDB$DATABASE;

Reiniciar a contagem de um generator

Para re-iniciar a contagem de um generator basta executar o comando abaixo:

SET GENERATOR TO X;

Onde X é um número inteiro.

O exemplo abaixo define o valor do generator GEN_Cliente_Codigo igual a zero:

SET GENERATOR GEN_Cliente TO 0

Observação: O valor obtido com GEN_ID(GEN_Cliente, 1) após o exemplo dado anteriormente será 1 (um), pois a função GEN_ID retorna o valor do generator já incrementado.

Remover (excluir) um generator

No InterBase 6.0.x:
DELETE FROM RDB$GENERATORS
WHERE RDB$GENERATOR_NAME = 'NOME_DO_GENERATOR';


No FireBird:
DROP GENERATOR NOME_DO_GENERATOR;

Leia também.:
• Interbase/Firebird - Campos Auto-Incrementais
• Conheça o Firebird em 2 minutos
• Limites para tamanho de bancos de dados firebird

Comentários

Escrever Comentário
Comentários estão sujeitos à moderação dos administradores do site
Permitido inserir no máximo 1 link por comentário.
Nome:
E-Mail:
HomePage:
Titulo:
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List
Comentário:

Código:* Code

Powered by AkoComment!

 
< Anterior   Próximo >
 Instale a ToolBar e fique sempre atualizado com o que acontece no Site... Notícias, Links, Rádios Online e muito mais...
Instale no seu Browser a barra de tarefas do InfoHome Web Site