Esse artigo faz parte da revista Clube Delphi edição 36. Clique aqui para ler todos os artigos desta edição

 

Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

 

Criação dinâmica de bancos IB

Gere a estrutura do BD usando a API do InterBase

Muitas vezes quando distribuímos nossos aplicativos, desejamos que eles criem seus próprios bancos de dados, sem que para isso seja necessário distribuir o arquivo .gdb (no caso do InterBase) juntamente com o executável. Além disso, a geração dinâmica do banco de dados pode reduzir o tamanho final do instalador a ser distribuído.

Se estivermos utilizando o InterBase, não seremos capazes de criar o banco de dados e suas tabelas através de chamadas a API do BDE como é possível no Paradox. Teremos de utilizar chamadas à API do próprio InterBase. Neste artigo veremos como fazer a criação, em runtime, de bancos de dados, tabelas, generators e triggers.

Criando o aplicativo

Veja na Figura 1 a tela do aplicativo demonstrativo que vamos criar.

Figura 1.Tela principal do exemplo

Para criação do banco de dados precisamos informar o caminho completo do arquivo .gdb a ser criado, bem como o nome do usuário e a senha de acesso. Temos ainda a opção de adicionar à tabela recém-criada informações contidas em um arquivo de resource anexado ao executável. Após selecionarmos todas as opções, criamos o banco de dados clicando no botão.

Nota: Para executar o exemplo, o InterBase deverá estar corretamente instalado e em execução.

O código do aplicativo está dividido em duas units. A unit principal define a interface com o usuário; a outra unit contém as chamadas à [FVM1] API do InterBase, necessárias à criação do banco de dados. Veja o código  (resumido) da unit principal na Listagem 1.

 

Listagem 1. Unit principal

 

unit Main;

 

interface

{...}

 

implementation

{...}

 

const

  IBTableName = 'TEST_TABLE';

 

//------ Cria tabela InterBase e adiciona dados ------

procedure TMainForm.CreateBtnClick(Sender: TObject);

...

Quer ler esse conteúdo completo? Tenha acesso completo