Вы находитесь на странице: 1из 6

603 - Criando uma base de dados MS Access pelo Delphi

Resumo:
Aprenda como criar uma base de dados MS Access sem o MS Access. Cria a base, as tabelas, ndices, enfim, tudo utilizando puro cdigo delphi.

INTRODUO
Quando se cria um sistema para ambientes desktop sempre surge a dvida de qual base de dados usar. Geralmente so usados bancos DBase, Paradox ou MS Access. Destes, a base mais robusta e confivel , sem dvida, MS Access. Mas existe um grande problema para se criar a base de dados MS Access, pois faz-se necessrio o uso do ambiente MS Access. Algumas pessoas no tm este aplicativo instalado em sua mquina e ento torna-se invivel o uso desta base de dados, impedindo, desta forma, um crescimento tecnolgico do programador que fica preso a ferramentas obsoletas. Neste tutorial voc ir aprender como criar uma base de dados MS Access a partir do nada, usando puro cdigo Delphi e a Tecnologia ADO Extensions que distribuda pela Microsoft. ADOX, faz parte dos componentes ADO, quer dizer, uma extenso do ADO. O ADOX fornece ferramentas de acesso a estrutura, segurana, definies de tabelas e muitos outros. Como dito anteriormente, ADOX uma library distribuda pela Microsoft, o arquivo chama-se "Msadox.dll", sua definio "Microsoft ADO Ext. 2.x for DDL and Security" e este arquivo que iremos importar para nossa IDE no Delphi.

INSTALANDO
Para usar este objetos no Delphi basta seguir os seguintes passos: 1- Selecione PROJECT > IMPORT TYPE LIBRARY 2- Procure pela descrio: "Microsoft ADO Ext. 2.x for DDL and Security (Version 2.x)" 2- Em CLASS NAMES, altere o nome dos objetos acrescentando ADOX aps 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 ficaro, exemplo: ADOX. 4- Pressione INSTALL, logo depois pressione Ok confirmando o incio da instalao. 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 muito bvio, estes nomes de classe como Ttable j existem, ento iria gerar conflitos na compilao, por isso bastou trocar o nome da classe. Pronto, os objetos esto 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 importao da DLL. Agora, mos obra.

DEFININDO A BASE DE DADOS E OBJETOS A SEREM USADOS


Vamos criar uma base onde sero armazenados informae sobre animais de estimao (para sair um pouco da rotina de CLIENTES/PRODUTOS/PEDIDOS). Para esta base sero criadas as seguintes tabelas: > PROPRIETARIO > PRO_ID > PRO_NOME >ANIMAL > ANI_ID > ANI_PROPRIETARIO > ANI_NOME > ANI_NASCIMENTO Onde um proprietario pode ter mais de um animal formando assim um relacionamento UM PARA MUITOS. No Delphi, crie uma nova aplicao. Ser criado um novo Form, a este insira os seguintes componentes: > 3 TButtons Para lanar os procedimentos de criao da base de dados e das tabelas. Altere as seguintes propriedades para cada TButtons respectivamente: Caption: Criar base Name: btnBase Caption: Criar tabelas Name: btnTabelas

Caption: Navegar Name: btnNavegar > 1 TEdit Para armazenar o path da base de dados a ser criada. Altere as seguintes propriedades: Name: edtPath Text: (deixe em branco) > 1 TSaveDialog Para navegar no disco e informar o path da base de dados. Altere as seguintes propriedades: Filter: Base MS Access|*.mdb Title: Salvar como... DefaultExt: .mdb > 1 TADOConnection Para fazer a conexo com a base criada. Altere as seguintes propriedades: Login prompt: False > 1 TADOCommand Para fazer a ligao e criao das tabelas. Altere as seguintes propriedades: Connection: Selecione o ADOConnection1 > 1 TADOXCatalog Para criar a base de dados.

CRIANDO A BASE DE DADOS


Agora vamos ao cdigo. Clique 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 no 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 atribumos a string de conexo varivel BASE informando vrios parmetros, 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 criado a base de dados atravs do mtodo Create1 do objeto ADOXCatalog, passando para este a string da BASE. Observe que o mtodo Create1 e no simplesmente Create, pois o mtodo Create j existe e da classe. Pronto, criamos uma base de dados vazia, no existe nada nela, mas j um arquivo comum ao MS Access e pode ser aberto normalmente.

CRIANDO TABELAS
Vamos comear 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 +

';Persist Security Info=False'; ADOConnection1.ConnectionString := base; { Criando as tabelas... } {>>> PROPRIETARIO <<<} comando := 'CREATE TABLE PROPRIETARIO (' + 'PRO_ID INT,' + 'PRO_NOME TEXT(50))'; 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; end;

CONCLUNDO
Pronto, tudo muito fcil e simples. Agora rode o programa e faa os testes. Clique em navegar, selecione um diretrio e digite o nome que sua base ter, ento clique em CRIAR BASE e veja que o programa criar

a base, logo aps isto clique em CRIAR TABELAS ento as tabelas sero criadas. Agora ficou fcil criar sistemas desktops usando uma base mais robusta sem a necessidade de se ter o MS Access instalado em sua mquina. possvel criar e acessar todos os recursos de tabelas da base de dados MS Access usando os objetos ADOX, aqui foi mostrado como criar utilizando linguagem DDL, ou seja, escrevemos diretamente para que o comando fosse executado, mas possvel ter acesso estes recursos diretamente com os componentes distribudos por esta library, mas este assunto ficar para outra ocasio. Se voc tiver o MS Access instalado em sua mquina pode abri-lo e verificar nossa base de dados, caso contrrio (como o meu caso) crie uma simples aplicao com dois DBGrids para exibir os campos das tabelas, assim como inserir dados. []s Henrique Meira

Вам также может понравиться