Desenvolvimento - Delphi

Conexão e Consulta a Bancos Microsoft Access

Uma objetiva demonstração de como conectar-se ao banco Microsft Access.

por Tito de Barros Junior



Olá companheiros Delphianos!

Desta vez preparei um artigo que trata de um assunto primordial, conexão e consulta, agora, porque primordial? Porque na grande maioria dos casos, eu disse na grande maioria, um sistema possui um banco de dados, e é óbvio que é preciso recuperar o que foi salvo nele. Concorda?

Muitos acham que se trata de algo muito complicado, mas tenham certeza de que não o é, pois os componentes do “Delphi” facilitam tudo para nós, inclusive os nativos.

Pois bem, comecemos! Primeiramente, como de costume, inicie um novo projeto em: File\New\Application. Em seguida adicione um “DataModule”, que para quem não sabe é um form do Dephi designado para conter e centralizar objetos “não visuais”. Tipicamente utilizado para objetos de acesso a dados, mas também pode conter outros objetos como “Timer”, “OpenDialog”, entre outros.

Dica: Para saber exatamente quais componentes podem ser adicionados no “DataModule”, basta manter o foco no form do seu  “DataModule” e ir navegando pelas Abas do Delphi. Os componentes que se mantiverem visíveis em cada aba visitada, poderão ser adicionados a ele.

O próximo passo, é localizar a aba ADO e inserir um “ADOConnection” ao seu “DataModule” e também um “ADOQuery”. Em seguida vá para a aba “Data Access” e adicione um “DataSource”.

Pronto, já temos tudo que precisamos do Delphi para nos conectar a um banco Microsoft Access, basta agora localizar um arquivo do tipo (*.MDB, *ACCDB). Não será uma tarefa tão difícil para você que possui o Borland Delphi Instalado em sua máquina. Para isso, vá até a pasta: “C:\Arquivos de programas\Arquivos comuns\Borland Shared\Data”, lá se encontra um arquivo de nome “dbdemos.mdb” e é ele que vamos utilizar neste artigo.

Então, mãos a obra !!

Primeiramente selecione seu “DataModule” e em seguida dê um clique duplo no “ADOConnection” dele, uma janela como a da Figura 1 será exibida para que sua string de conexão seja montada.

Figura 1 – Janela de Conexão com banco Microsoft Access

Conexão Access.JPG

Como ainda não foi definido o provedor de dados, é hora de escolhermos. Para o Microsoft Access, utilizamos o “Microsoft Jet 4.0 OLE DB Provider”, como mostra a Figura 2.

Figura 2 – Provedor de Conexão

Provedor_Conexao.JPG

Em seguida pressione selecione a aba “Conexão” e pressione o botão “Build” para que você inicie a configuração da conexão. Surgirá uma tela de “Propriedades de Vinculação de Dados”, como mostra a “Figura 3”.

Figura 3 – Janela de Propriedades de Conexão

Propriedades_Conexao_Access.JPG

Veja que já se encontra selecionado o arquivo “dbdemos.mdb” que sugeri. Para fazer isso, clique no botão com “três pontos”, logo ao lado da caixa de texto “1. Selecione ou insira o nome de um banco de dados”.

Localizado o arquivo, vamos às devidas configurações dos componentes.

Selecione o componente “ADOQuery” e clique na propriedade ”Connection” e selecione seu componente de conexão, que é o “ADOConnection” em seguida selecione seu “DataSource” e no “Object Inspector” na aba “Properties” selecione a propriedade “DataSet”, que vai vincular ao objeto de consulta, que neste caso é o “ADOQuery”. A função do “DataSource” é fazer a ponte entre os dados que estão no objeto de consulta e o de visualização de dados “DBGrid”, que será inserido em seu formulário principal mais adiante ainda neste artigo.

Agora selecione seu formulário principal e localize dentre as abas de componentes do Delphi a de nome “DataControls” e adicione um “DBGrid” ao form. Antes de fazer a ligação do componente com o “DataSource”, é preciso fazer com que seu formulário principal enxergue os componentes do “DataModule”, para isso, alterne entre a janela de codificação e localize a linha “Implementation” e insira logo abaixo dela a seguinte instrução:

uses Unit2;

Dica: Ao adicionar o “DataModule” ao projeto, o Delphi sugere um nome padrão a unidade “Unit” que é uma concatenação da palavra Unit, seguido do número de forms mais “1”, ou seja, como este foi o segundo form adicionado ao projeto, o nome sugerido foi “Unit2”.

Agora, selecione a aba de componentes “DataControls” e adicione um componente “DBGrid” ao form principal, que no seu caso deve ser o “Form1”, mas se houver dúvidas, é o que ainda não contém nenhum componente adicionado.

Selecione agora a aba de componentes “Standard” e adicione um “Edit” e um “Button”.

Agora precisamos fazer a ligação do “DBGrid” que é quem apresentará na tela os dados encontrados no banco. Selecione o “DBGrid” clicando uma vez com o botão esquerdo do mouse sobre ele e em seguida através da tecla de função (F11) do seu teclado acesse o “Object Inspector”, aba “Properties” para indicar o “DataSource” na propriedade “DataSource”, que neste caso será listado apenas um, que é o de nome “DataSource1”.

Se você acompanhou todos os passos exatamente como indicados, já podemos codificar para obter dados do banco. Então vamos lá.

Clique duas vezes sobre o componente “Button” que adicionamos anteriormente no form principal. Agora você deve estar na tela de codificação do Delphi, então insira o bloco em negrito que se segue:

procedure TForm1.btnConsultarClick(Sender: TObject);

begin

  dm.ADOQuery1.sql.clear;

  dm.ADOQuery1.sql.add("select * from country"); 

  if (Edit1.text <> ‘’) then

    dm.ADOQuery1.sql.add("where name like"+#39+Edit1.text+"%"+#39);

  dm.ADOQuery1.open;

end;

Explicando linha a linha:

dm.ADOQuery1.sql.clear;

Caso alguma consulta anterior tenha sido realizada, estamos limpando-a para iniciar uma nova.

dm.ADOQuery1.sql.add("select * from country");

Estamos obtendo através de comandos SQL todos os campos da tabela Country, esta que se encontra dentro do Banco “dbdemos.mdb”. O asterisco (*) traz todos os campos de uma tabela, mas em geral não é interessante acessá-los desta forma, pois torna a consulta mais lenta. O mais certo é digitar campo a campo que se deseja trazer na consulta, mas como este é só um exemplo, é válido.

dm.ADOQuery1.sql.add("where name like"+#39+Edit1.text+"%"+#39);

Ainda utilizando código SQL, estamos fazendo uma filtragem, e dizendo que só queremos exibir na tela somente a cidade que contenha o texto que digitamos no “Edit”. O Comando “Like” nos dá a possibilidade de fazer consultas dentro do texto, ou seja, blocos parciais, fragmentos, não precisa necessariamente ser o texto completo. Ex: Braz,  trará na tela o registro que contém dados do País Brazil.

dm.ADOQuery1.open;

Este comando faz com que a tabela seja realmente aberta e o comando “Select” executado.

Agora é só pressionar F9, digitar o nome de algum País e ver se ele está cadastrado na tabela Country.

Fico por aqui e torço para que tenha sido claro o suficiente para o entendimento da mensagem. Até a próxima.

Tito de Barros Junior

Tito de Barros Junior - Desenvolvedor Desktop e Web, com experiência de cerca de 9 anos na área de TI. Atualmente trabalhando na Associação de Ensino e Cultura Pio Décimo, onde atuo desde 2006 com as tecnologias MS Visual Studio, Borland Delphi e MS SQL Server. Graduando em Desenvolvimento de aplicações para Web.