Access junto com Delphi
Como fazer usar um Banco de Dados do Access em Delphi ?? Preciso fazer isto mas não sei nem por onde começar...
Desde já agradeço...
Desde já agradeço...
Carolmca
Curtidas 0
Respostas
Navoid
16/02/2003
use os componentes da paleta ADO,
adotable, adoconnection, adoquery, e por ai vai.
qq dúvida entre em contato.
até
adotable, adoconnection, adoquery, e por ai vai.
qq dúvida entre em contato.
até
GOSTEI 0
Carnette
16/02/2003
Tirado do 750 dicas e truques em delphi do LloidSoft
www.lloydsoft.hpg.ig.com.br
Artigo feito por Henrique Meira
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 código delphi.
INTRODUÇÃO
Quando se cria um sistema para ambientes desktop sempre surge a dúvida de qual base de dados usar. Geralmente são usados bancos DBase, Paradox ou MS Access. Destes, a base mais robusta e confiável é, sem dúvida, MS Access. Mas existe um grande problema para se criar a base de dados MS Access, pois faz-se necessário o uso do ambiente MS Access.
Algumas pessoas não têm este aplicativo instalado em sua máquina e então torna-se inviável o uso desta base de dados, impedindo, desta forma, um crescimento tecnológico 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 código Delphi e a Tecnologia ADO Extensions que é distribuída pela Microsoft.
ADOX, faz parte dos componentes ADO, quer dizer, é uma extensão do ADO. O ADOX fornece ferramentas de acesso a estrutura, segurança, definições de tabelas e muitos outros.
Como dito anteriormente, ADOX é uma library distribuída pela Microsoft, o arquivo chama-se ´Msadox.dll´, sua definição é ´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 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 é muito óbvio, estes nomes de classe como Ttable já existem, então iria gerar conflitos na compilação, por isso bastou 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.
Agora, mãos à obra.
DEFININDO A BASE DE DADOS E OBJETOS A SEREM USADOS
Vamos criar uma base onde serão armazenados informaçõe sobre animais de estimação (para sair um pouco da rotina de CLIENTES/PRODUTOS/PEDIDOS).
Para esta base serão 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 aplicação. Será criado um novo Form, a este insira os seguintes componentes:
> 3 TButtons
Para lançar os procedimentos de criação 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 conexão com a base criada.
Altere as seguintes propriedades:
Login prompt: False
> 1 TADOCommand
Para fazer a ligação e criação 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 código. 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 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 criado 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.
CRIANDO TABELAS
Vamos 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 +
´;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;
CONCLUÍNDO
Pronto, tudo muito fácil e simples. Agora rode o programa e faça os testes. Clique em navegar, selecione um diretório e digite o nome que sua base 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.
Agora ficou fácil criar sistemas desktops usando uma base mais robusta sem a necessidade de se ter o MS Access instalado em sua máquina. É possível 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 é possível ter acesso à estes recursos diretamente com os componentes distribuídos por esta library, mas este assunto ficará para outra ocasião.
Se você tiver o MS Access instalado em sua máquina pode abri-lo e verificar nossa base de dados, caso contrário (como é o meu caso) crie uma simples aplicação com dois DBGrids para exibir os campos das tabelas, assim como inserir dados.
[]’s
www.lloydsoft.hpg.ig.com.br
Artigo feito por Henrique Meira
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 código delphi.
INTRODUÇÃO
Quando se cria um sistema para ambientes desktop sempre surge a dúvida de qual base de dados usar. Geralmente são usados bancos DBase, Paradox ou MS Access. Destes, a base mais robusta e confiável é, sem dúvida, MS Access. Mas existe um grande problema para se criar a base de dados MS Access, pois faz-se necessário o uso do ambiente MS Access.
Algumas pessoas não têm este aplicativo instalado em sua máquina e então torna-se inviável o uso desta base de dados, impedindo, desta forma, um crescimento tecnológico 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 código Delphi e a Tecnologia ADO Extensions que é distribuída pela Microsoft.
ADOX, faz parte dos componentes ADO, quer dizer, é uma extensão do ADO. O ADOX fornece ferramentas de acesso a estrutura, segurança, definições de tabelas e muitos outros.
Como dito anteriormente, ADOX é uma library distribuída pela Microsoft, o arquivo chama-se ´Msadox.dll´, sua definição é ´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 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 é muito óbvio, estes nomes de classe como Ttable já existem, então iria gerar conflitos na compilação, por isso bastou 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.
Agora, mãos à obra.
DEFININDO A BASE DE DADOS E OBJETOS A SEREM USADOS
Vamos criar uma base onde serão armazenados informaçõe sobre animais de estimação (para sair um pouco da rotina de CLIENTES/PRODUTOS/PEDIDOS).
Para esta base serão 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 aplicação. Será criado um novo Form, a este insira os seguintes componentes:
> 3 TButtons
Para lançar os procedimentos de criação 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 conexão com a base criada.
Altere as seguintes propriedades:
Login prompt: False
> 1 TADOCommand
Para fazer a ligação e criação 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 código. 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 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 criado 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.
CRIANDO TABELAS
Vamos 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 +
´;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;
CONCLUÍNDO
Pronto, tudo muito fácil e simples. Agora rode o programa e faça os testes. Clique em navegar, selecione um diretório e digite o nome que sua base 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.
Agora ficou fácil criar sistemas desktops usando uma base mais robusta sem a necessidade de se ter o MS Access instalado em sua máquina. É possível 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 é possível ter acesso à estes recursos diretamente com os componentes distribuídos por esta library, mas este assunto ficará para outra ocasião.
Se você tiver o MS Access instalado em sua máquina pode abri-lo e verificar nossa base de dados, caso contrário (como é o meu caso) crie uma simples aplicação com dois DBGrids para exibir os campos das tabelas, assim como inserir dados.
[]’s
GOSTEI 0
Anonymous
16/02/2003
No Delphi 6 utilizo os componentes da paleta ADO.
1 - Comece utilizando o ADOConnection, onde vc ira criar a conexao com o banco Access.
2 - A partir de criacao da conexao vc pode acessar o banco via ADOTable ou ADOQuery (SQL).
Mais duvidas nao hesite.
1 - Comece utilizando o ADOConnection, onde vc ira criar a conexao com o banco Access.
2 - A partir de criacao da conexao vc pode acessar o banco via ADOTable ou ADOQuery (SQL).
Mais duvidas nao hesite.
GOSTEI 0
Anonymous
16/02/2003
Olá...
Obrigado a todos que me enviaram dicas, porém ainda tenho uma dúvida: no artigo ´Criando uma base de dados MS Access pelo Delphi´ , pede-se a criação de 1 TADOXCatalog porém não acho isso no meu Delphi (uso o Delphi 5)...como faço para achar esse 1 TADOXCatalog??
Mais uma vez, obrigado...
CAROL
Obrigado a todos que me enviaram dicas, porém ainda tenho uma dúvida: no artigo ´Criando uma base de dados MS Access pelo Delphi´ , pede-se a criação de 1 TADOXCatalog porém não acho isso no meu Delphi (uso o Delphi 5)...como faço para achar esse 1 TADOXCatalog??
Mais uma vez, obrigado...
CAROL
GOSTEI 0