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 JuniorOlá 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
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
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
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.