You are on page 1of 5

17/9/2009

Criando uma base de dados MS Access

Pgina 1 de 1

Criando uma base de dados MS Access pelo Delphi Avaliar tpico:

carnette
Post ou 0 8 A pr il 2 0 0 3 - 0 5 :2 7 PM

A utor: Henrique Meira (http://www.pedgih.hpg.com.br)

Criando um a base de dados MS Access pelo Delphi Resumo: A prenda como criar uma base de dados MS A ccess sem o MS A ccess. Cria a base, as tabelas, ndices, enfim, tudo utilizando puro cdigo delphi. INTRODU O Quando se cria um sistema para ambientes desktop sempre surge a dv ida de qual base de dados usar. Geralmente so usados bancos DBase, Paradox ou MS A ccess. Destes, a base mais robusta e confiv el , sem dv ida, MS A ccess. Mas ex iste um grande problema para se criar a base de dados MS Access, pois faz-se necessrio o uso do ambiente MS A ccess. A lgumas pessoas no tm este aplicativ o instalado em sua mquina e ento torna-se inv iv el o uso desta base de dados, impedindo, desta forma, um crescimento tecnolgico (#) do programador que fica preso a ferramentas obsoletas. Neste tutorial v oc ir aprender como criar uma base de dados MS A ccess a partir do nada, usando puro cdigo Delphi e a Tecnologia (#) A DO Ex tensions que distribuda pela Microsoft. A DOX, faz parte dos componentes A DO, quer dizer, uma ex tenso do A DO. O A DOX fornece ferramentas de acesso a estrutura, segurana, definies de tabelas e muitos outros. Como dito anteriormente, ADOX uma library distribuda pela Microsoft, o arquiv o chama-se "Msadox .dll", sua definio "Microsoft ADO Ex t. 2.x for DDL and Security " e este arquiv o que iremos importar para nossa IDE no Delphi. INSTA LA NDO Para usar este objetos no Delphi basta seguir os seguintes passos: 1 - Selecione PROJECT > IMPORT TY PE LIBRA RY 2- Procure pela descrio: "Microsoft A DO Ex t. 2.x for DDL and Security (V ersion 2.x )" 2- Em CLA SS NAMES, altere o nome dos objetos acrescentando A DOX aps a letra T, ex emplo: TTable mude para TA DOXTable, TColumm mude para TA DOXColumn. Repita este procedimento para todos objetos nesta lista. 3- Em PALETTE PA GE selecione ou digite um nov o nome para a paleta onde os componentes ficaro, ex emplo: A DOX. 4- Pressione INSTALL, logo depois pressione Ok confirmando o incio da instalao. 5- Pressione Y ES confirmando que v oc quer instalar os componentes. 6- Pressione Ok na tela que indica os objetos instalados. 7 - Selecione FILE > CLOSE ALL e pressione Y ES para salv ar este package criado. O motiv o da troca do nome dos objetos muito bv io, estes nomes de classe como Ttable j ex istem, ento
forumweb.com.br/foruns/index.php?/to 1/5

17/9/2009 Criando uma base Access O motiv o da troca do nome dos objetos muito bvde io,dados estesMS nomes de classe como Ttable j ex istem, ento

iria gerar conflitos na compilao, por isso bastou trocar o nome da classe. Pronto, os objetos esto instalados, agora sempre que v oc utilizar estes objetos ser inserido na clausula USES a Unit A DOX_TLB pois este o nome da unit criada a partir da importao da DLL. A gora, mos obra. DEFININDO A BA SE DE DA DOS E OBJETOS A SEREM USA DOS V amos 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 >A NIMAL > A NI_ID > A NI_PROPRIETA RIO > A NI_NOME > A NI_NASCIMENTO Onde um proprietario pode ter mais de um animal formando assim um relacionamento UM PA RA MUITOS. No Delphi, crie uma nov a aplicao. Ser criado um nov o Form, a este insira os seguintes componentes: > 3 TButtons Para lanar os procedimentos de criao da base de dados e das tabelas. A ltere as seguintes propriedades para cada TButtons respectiv amente: Caption: Criar base Name: btnBase Caption: Criar tabelas Name: btnTabelas Caption: Nav egar Name: btnNav egar > 1 TEdit Para armazenar o path da base de dados a ser criada. A ltere as seguintes propriedades: Name: edtPath Tex t: (deix e em branco) > 1 TSav eDialog Para nav egar no disco e informar o path da base de dados. A ltere as seguintes propriedades: Filter: Base MS A ccess|*.mdb
forumweb.com.br/foruns/index.php?/to 2/5

17/9/2009

Criando uma base de dados MS Access

Title: Salv ar como... DefaultEx t: .mdb > 1 TA DOConnection Para fazer a conex o com a base criada. A ltere as seguintes propriedades: Login prompt: False > 1 TA DOCommand Para fazer a ligao e criao das tabelas. A ltere as seguintes propriedades: Connection: Selecione o A DOConnection1 > 1 TA DOXCatalog Para criar a base de dados. CRIA NDO A BA SE DE DA DOS A gora v amos ao cdigo. Clique duas v ezes no objeto btnNav egar e digite:

Quote procedure TForm1 .btnNav egarClick(Sender: TObject); begin if Sav eDialog1 .Ex ecute then edtPath.Tex t := Sav eDialog1 .FileName; end; Com isso informamos o nome que a base ter. Clique duas v ezes no objeto btnBase e digite o seguinte procedimento: Quote procedure TForm1 .btnBaseClick(Sender: TObject); v ar Base: String; begin if edtPath.Tex t = '' then begin ShowMessage('Nome da base de dados no informada (#) .'); ex it; end; Base := 'Prov ider=Microsoft.Jet.OLEDB.4.0'+ ';Data Source=' + edtPath.Tex t + ';Jet OLEDB:Engine Ty pe=4'; A DOXCatalog1 .Create1 (Base); end; Primeiro v erificamos se h algum tex to no objeto TEdit, em seguida atribumos a string de conex o v ariv el BASE informando v rios parmetros, mas atente para a seguinte linha: "...Engine Ty pe=4...", isto quer dizer que iremos criar uma base A ccess 97 , para Access 2000 informe 5. Em seguida efetiv amente criado a base de dados atrav s do mtodo Create1 do objeto A DOXCatalog, passando para este a string da BA SE. Observ e que o mtodo Create1 e no simplesmente Create, pois o mtodo Create j ex iste e da classe.
forumweb.com.br/foruns/index.php?/to 3/5

17/9/2009

Criando uma base de dados MS Access

Pronto, criamos uma base de dados v azia, no ex iste nada nela, mas j um arquiv o comum ao MS A ccess e pode ser aberto normalmente. CRIA NDO TA BELA S V amos comear a criar as tabelas, seus ndices e integridade referencial. Para isso clique duas v ezes no objeto btnTabelas e digite: Quote procedure TForm1 .btnTabelasClick(Sender: TObject); v ar base, comando: string; begin { definindo a base de dados } base := 'Prov ider=Microsoft.Jet.OLEDB.4.0' + ';Data Source=' + edtPath.Tex t + ';Persist Security Info=False'; A DOConnection1 .ConnectionString := base; { Criando as tabelas... } {>>> PROPRIETARIO <<<} comando := 'CREATE TA BLE PROPRIETARIO (' + 'PRO_ID INT,' + 'PRO_NOME TEXT(50))'; A DOCommand1 .CommandTex t := comando; A DOCommand1 .Ex ecute; { A DICIONA NDO INDICES } comando := 'CREATE INDEX IDX_PRO_ID ' + 'ON PROPRIETARIO (PRO_ID) WITH PRIMA RY '; A DOCommand1 .CommandTex t := comando; A DOCommand1 .Ex ecute; {>>> A NIMAL <<<} comando := 'CREATE TA BLE A NIMAL (' + 'A NI_ID INT,' + 'A NI_PROPRIETARIO INT ' + 'CONSTRAINT IDX_PRO_ID ' + 'REFERENCES PROPRIETA RIO (PRO_ID),' + 'A NI_NOME TEXT (50),' + 'A NI_NA SCIMENTO DA TETIME)'; A DOCommand1 .CommandTex t := comando; A DOCommand1 .Ex ecute; end; CONCLUNDO Pronto, tudo muito fcil e simples. A gora rode o programa e faa os testes. Clique em nav egar, selecione um diretrio e digite o nome que sua base ter, ento clique em CRIA R BA SE e v eja que o programa criar a base, logo aps isto clique em CRIA R TA BELAS ento as tabelas sero criadas. A gora ficou fcil criar sistemas desktops usando uma base mais robusta sem a necessidade de se ter o MS A ccess instalado em sua mquina. possv el 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, escrev emos diretamente para que o comando fosse ex ecutado, mas possv el ter acesso estes recursos diretamente com os componentes distribudos por esta library , mas este assunto ficar para outra ocasio. Se v oc tiv er o MS Access instalado em sua mquina pode abri-lo e v erificar nossa base de dados, caso contrrio (como o meu caso) crie uma simples aplicao com dois DBGrids para ex ibir os campos das tabelas, assim como inserir dados.

Idemilson
Post ou 0 7 Ma y 2 0 0 3 - 0 1 :2 8 PM

forumweb.com.br/foruns/index.php?/to

4/5

17/9/2009

Criando uma base de dados MS Access

Prezado Henrique, Muito bom ! Qual o link para essa biblioteca ? Respeitosamente, Idemilson S Jnior

Pgina 1 de 1
Powered By IP.Board 2 009 IPS, Inc. Licensed to: Frum WEB

forumweb.com.br/foruns/index.php?/to

5/5

You might also like