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]

Hosted by www.Geocities.ws

1