Criando um Campo Auto Incremento no Interbase
O Interbase não possui dados do
tipo Auto Incremento. Porém, para usarmos campos deste tipo temos outros
recursos disponíveis para criarmos um.
Utilizaremos um Trigger,
que para quem não está acostumado com Bancos de Dados Cliente/Servidor deve
saber que este termo traduzido significa "Gatilho". Literalmente, este
gatilho é disparado por um evento na sua tabela. Os eventos são: AFTER
DELETE, AFTER INSERT, AFTER UPDATE, BEFORE DELETE, BEFORE INSERT e BEFORE
UPDATE.
No nosso caso, utilizaremos uma Trigger BEFORE INSERT
(antes de inserir) para atribuir um número automaticamente para o nosso campo da
tabela. Esse número será gerado automaticamente por um Generator, que é
um gerador de números do Interbase.
Exemplo:
Para o nosso
exemplo, iremos utilizar o SQL Explorer que vem junto com o Delphi, pois
através dele podemos manipular nosso Banco Interbase de forma visual sem ter que
escrever todos os Scripts SQL.
No SQL Explorer, clique no menu
Object - Item New. Selecione o Driver do Interbase e clique em
OK.

Digite
um nome para o seu Banco de Dados, no nosso exemplo utilizaremos o nome
"BDSisCli".
Em Server
Name, digite o caminho do seu Banco de Dados. Se você tem dúvidas com
relação a criação de Bancos de Dados IB veja o link Como criar um BD no
Interbase 6.
Com o botão direito do mouse, clique em nosso BD e
selecione a opção Apply. Agora clique no sinal + para abrirmos o Banco.
Na tela de login: User Name=SYSDBA e Password=masterkey.
Vamos
criar primeiro uma tabela: com o botão direito em Tables, selecione a
opção New. Defina o nome da tabela como "CLIENTES". Em
Columns, novamente com o botão direito, a opção New. Digite
CODIGO para o nome da coluna e altere seu Type para
Integer. Crie outra coluna chamada NOME do tipo
VARCHAR.

Com o
botão direito em "BDSisCli", selecione a opção Apply.
Criaremos
agora nosso Generator. Com o botão direito em "Generators",
selecione a opção New e defina o seu nome como GENERATOR_CLIENTES.
Pronto, já temos nosso gerador de números, note que seu valor inicial é 0,
altere para 1. Dê um Apply para confirmar as alterações.
Na nossa
tabela "CLIENTES", clique com o botão direito em "Triggers" e
selecione a opção New para criarmos nosso gatilho. Altere o Type
do Trigger para BEFORE INSERT.
Na Aba Text, atribua
o número gerado pelo GENERATOR_CLIENTES para o campo "CODIGO" de
nossa tabela, como mostra o código abaixo:
CREATE TRIGGER
CLIENTESTRIGGER1 FOR CLIENTES BEFORE INSERT POSITION 0 AS
BEGIN
NEW.CODIGO
= GEN_ID(GENERATOR_CLIENTES,1);
END
Entenda esta única linha de
código de nossa Trigger: NEW é o nome da tabela em questão e
GEN_ID é a função que retorna o número de nosso Generator e
incrementa o valor especificado após a virgula.

Veja como
ficou a estrutura do nosso Banco de Dados:

Para fazer o Download do exemplo clique
aqui!
Home | Componentes | Apostilas | Exemplos e
Funções | Dicas e Macetes | Revista
ClubeDelphi |Kylix | P. Pessoais
Lista de
Discussão | Chat | Uploaders | Cadastre-se | Currículo | Camisa
ClubeDelphi | Assine Já
ClubeDelphi ©- Todos os direitos
reservados
[email protected]