criando um banco de dados access via programação

7
Criando um Banco de Dados Access via programação Primeiramente, se você quiser criar e manipular uma database MDB, deverá ter ADO instalado no Windows e o ADOX no Delphi. O ADOX é uma extensão, uma library, do ADO distribuída pela Microsoft, e é através dele que acessamos estruturas, segurança, definições de tabelas, etc. O arquivo chama-se “Msadox.dll” e é ele quem deverá ser importado para nossa IDE. Instalando o ADOX A instalação é muito simples, mas certifique-se da existência do arquivo “Msadox.dll”, que geralmente está no diretório “..\Arquivos comuns\SYSTEM\ADO”, e não deixe de mudar o nome das classes para não haver conflitos. Eu estou utilizando o Delphi 6 e não testei em outras versões. Siga os seguintes passos: 1- Selecione PROJECT > IMPORT TYPE LIBRARY 2- Procure pela descrição: “Microsoft ADO Ext. 2.x for DDL and Security (Version 2.x)” 2- Em CLASS NAMES, altere o nome dos objetos acrescentando ADOX após a letra T, exemplo: TTable mude para TADOXTable, TColumm mude para TADOXColumn. Repita este procedimento para todos objetos nesta lista. 3- Em PALETTE PAGE selecione ou digite um novo nome para a paleta onde os componentes ficarão, exemplo: ADOX. 4- Pressione INSTALL, logo depois pressione Ok confirmando o início da instalação. 5- Pressione YES confirmando que você quer instalar os componentes. 6- Pressione Ok na tela que indica os objetos instalados. 7- Selecione FILE > CLOSE ALL e pressione YES para salvar este package criado. O motivo da troca do nome dos objetos é porque estes nomes de classe (como Ttable) já existem, então iriam gerar conflitos na compilação, por isso é só trocar o nome da classe.

Upload: rodrigo-pessoa

Post on 10-Aug-2015

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Criando um Banco de Dados Access via programação

Criando um Banco de Dados Access via programação

Primeiramente, se você quiser criar e manipular uma database MDB, deverá ter ADO instalado no Windows e o ADOX no Delphi. O ADOX é uma extensão, uma library, do ADO distribuída pela Microsoft, e é através dele que acessamos estruturas, segurança, definições de tabelas, etc. O arquivo chama-se “Msadox.dll” e é ele quem deverá ser importado para nossa IDE.

Instalando o ADOXA instalação é muito simples, mas certifique-se da existência do arquivo

“Msadox.dll”, que geralmente está no diretório “..\Arquivos comuns\SYSTEM\ADO”, e não deixe de mudar o nome das classes para não haver conflitos. Eu estou utilizando o Delphi 6 e não testei em outras versões.

Siga os seguintes passos:

1- Selecione PROJECT > IMPORT TYPE LIBRARY2- Procure pela descrição: “Microsoft ADO Ext. 2.x for DDL and Security (Version 2.x)”2- Em CLASS NAMES, altere o nome dos objetos acrescentando ADOX após a letra T, exemplo: TTable mude para TADOXTable, TColumm mude para TADOXColumn. Repita este procedimento para todos objetos nesta lista.3- Em PALETTE PAGE selecione ou digite um novo nome para a paleta onde os componentes ficarão, exemplo: ADOX.4- Pressione INSTALL, logo depois pressione Ok confirmando o início da instalação.5- Pressione YES confirmando que você quer instalar os componentes.6- Pressione Ok na tela que indica os objetos instalados.7- Selecione FILE > CLOSE ALL e pressione YES para salvar este package criado.

O motivo da troca do nome dos objetos é porque estes nomes de classe (como Ttable) já existem, então iriam gerar conflitos na compilação, por isso é só trocar o nome da classe.

Pronto, os objetos estão instalados, agora sempre que você utilizar estes objetos será inserido na clausula USES a Unit ADOX_TLB pois este é o nome da unit criada a partir da importação da DLL.

Definindo a Base de Dados e Objetos UtilizadosVamos criar uma base onde serão armazenadas informações sobre animais de

estimação. Para esta base serão criadas as seguintes tabelas:

> PROPRIETARIO > PRO_ID > PRO_NOME

>ANIMAL > ANI_ID > ANI_PROPRIETARIO > ANI_NOME

Page 2: Criando um Banco de Dados Access via programação

> ANI_NASCIMENTO

Onde um proprietário pode ter mais de um animal formando assim um relacionamento UM PARA MUITOS.

No Delphi, crie uma nova aplicação. Será criado um novo Form, a este insira os seguintes componentes:

> 3 TButtonsPara lançar os procedimentos de criação da base de dados e das tabelas.Altere as seguintes propriedades para cada TButtons respectivamente:

Caption: Criar baseName: btnBase

Caption: Criar tabelasName: btnTabelas

Caption: NavegarName: btnNavegar

> 1 TEditPara armazenar o path da base de dados a ser criada.Altere as seguintes propriedades:

Name: edtPathText: (deixe em branco)

> 1 TSaveDialogPara navegar no disco e informar o path da base de dados.Altere as seguintes propriedades:

Filter: Base MS Access|*.mdbTitle: Salvar como...DefaultExt: .mdb

> 1 TADOConnectionPara fazer a conexão com a base criada.Altere as seguintes propriedades:

Login prompt: False

> 1 TADOCommandPara fazer a ligação e criação das tabelas.Altere as seguintes propriedades:

Connection: Selecione o ADOConnection1

Page 3: Criando um Banco de Dados Access via programação

> 1 TADOXCatalogPara criar a base de dados.

Criando a Base de DadosClique duas vezes no objeto btnNavegar e digite:

procedure TForm1.btnNavegarClick(Sender: TObject);begin if SaveDialog1.Execute then edtPath.Text := SaveDialog1.FileName;end;

Com isso informamos o nome que a base terá.Clique duas vezes no objeto btnBase e digite o seguinte procedimento:

procedure TForm1.btnBaseClick(Sender: TObject);var Base: String;begin

if edtPath.Text = '' then begin ShowMessage('Nome da base de dados não informada.'); exit; end;

Base := 'Provider=Microsoft.Jet.OLEDB.4.0'+ ';Data Source=' + edtPath.Text + ';Jet OLEDB:Engine Type=4';

ADOXCatalog1.Create1(Base);

end;

Primeiro, verificamos se há algum texto no objeto TEdit, em seguida atribuímos a string de conexão à variável BASE informando vários parâmetros, mas atente para a seguinte linha: “...Engine Type=4...”, isto quer dizer que iremos criar uma base Access 97, para Access 2000 informe 5.

Em seguida é efetivamente criada a base de dados através do método Create1 do objeto ADOXCatalog, passando para este a string da BASE. Observe que o método é Create1 e não simplesmente Create, pois o método Create já existe e é da classe.

Pronto, criamos uma base de dados vazia, não existe nada nela, mas já é um arquivo comum ao MS Access e pode ser aberto normalmente.

Page 4: Criando um Banco de Dados Access via programação

Criando TabelasVamos começar a criar as tabelas, seus índices e integridade referencial. Para

isso clique duas vezes no objeto btnTabelas e digite:

procedure TForm1.btnTabelasClick(Sender: TObject);var base, comando: string;begin

{ definindo a base de dados } base := 'Provider=Microsoft.Jet.OLEDB.4.0' + ';Data Source=' + edtPath.Text + ';Jet OLEDB:Engine Type=4'+ ';Persist Security Info=False'; ADOConnection1.ConnectionString := base;

{ Criando as tabelas... }

{>>> PROPRIETARIO <<<} comando := 'CREATE TABLE PROPRIETARIO (' + 'PRO_ID INT,' + 'PRO_NOME TEXT(50),'+ 'PRO_JURIDICA YESNO,'+ 'PRO_OBS MEMO)';

ADOCommand1.CommandText := comando; ADOCommand1.Execute;

{ ADICIONANDO INDICES } comando := 'CREATE INDEX IDX_PRO_ID ' + 'ON PROPRIETARIO (PRO_ID) WITH PRIMARY';

ADOCommand1.CommandText := comando; ADOCommand1.Execute;

{>>> ANIMAL <<<} comando := 'CREATE TABLE ANIMAL (' + 'ANI_ID INT,' + 'ANI_PROPRIETARIO INT ' + 'CONSTRAINT IDX_PRO_ID ' + 'REFERENCES PROPRIETARIO (PRO_ID),' + 'ANI_NOME TEXT (50),' + 'ANI_NASCIMENTO DATETIME)';

ADOCommand1.CommandText := comando; ADOCommand1.Execute;

Page 5: Criando um Banco de Dados Access via programação

end;

Os tipos de campos utilizados podem ser: Counter Autonumeração Integer Inteiro Currency Real DateTime Data e Hora YesNo Boleano Memo Memorando Text(‘xx’) Texto (tamanho do campo) LongBinary Blob, gráficos Word Word

Uma dica para criação de várias tabelas é você criar um campo memo no seu formulário (que vai ficar oculto) ou um arquivo texto, lançar os comandos em cada linha e utilizar um for ... to ... do para ler estas linhas e executa-las.

ConclusãoAgora execute o programa e faça os testes. Clique em navegar, selecione um

diretório e digite o nome que seu banco de dados terá, então clique em criar base e veja que o programa criará a base, logo após isto clique em criar tabelas então as tabelas serão criadas.

Este sistema de banco de dados, particularmente, é muito mais prático devido a sua robustez e praticidade, principalmente com a parte de índices, velocidade de conexão e leitura. Na parte de arquivamento de informações também é seguro, no que diz respeito à confiabilidade das informações; quanto ao acesso nem tanto, pois existem vários programas para quebrar senhas de arquivos MDB.

Espero que este material seja útil, tanto para iniciantes, como para programadores com experiência que queiram ter como opção este tipo de banco de dados.

Gostaria de agradecer imensamente ao Henrique Meira, pois foi ele quem forneceu esse material. Se vocês tiverem alguma novidade sobre programação em Delphi utilizando Access, mandem um e-mail para mim.

Fernando Vicente [email protected]/01/2004