Configurando conexão DBExpress carregando dados de um arquivo INI

Configurando conexão DBExpress carregando dados de um arquivo INIOlá pessoal, hoje o assunto será conexão DBExpress Delphi trabalho com essa IDE há mais de 8 anos e recentemente tirei a certificação Delphi Developer da Embarcadero. Vou postar uma classe que auxilia a carregar parâmetros de um arquivo INI para um componente SQLConnection, ela pode ser utilizada com vários SGBDs (Firebird, MySQL, PostgreSQL, SQLServe e etc ..)
 

Uso essa classe em quase todos os meus projetos que são desenvolvidos em Delphi e necessitam de conexão com banco de dados, a prática de utilizar aquivos INI para carregar dados de configuração é extremamente valiosa, pois da mais flexibilidade ao sistema principalmente quando trabalhamos em rede. Se necessário alterar dados como host, senha, usuário e etc., basta alterar o arquivo INI sem a necessidade de recompilar todo o sistema para efetivar a alteração.

 
Para esse exemplo será utilizado o seguinte cenário:
– MySQL 5.6
– Delphi XE

Essa classe tem como objetivo apenas carregar os dados do arquivo INI cujo o caminho é passado como parâmetro e setar as devidas configurações no componente SQLConnection que também é passado como parâmetro mas como valor de referência, ou seja, estamos trabalhando direto no objeto e não em sua cópia.

 
UConexao.pas

Vamos aos detalhes:

– Atributos da classe: Basicamente são criados todos os atributos que são necessários para se configurar uma conexão entre o componente SQLConnection e o MySQL. Com exceção do atributo Path que vai conter o caminho do arquivo INI e o atributo Secao que vai conter o nome da seção interna do arquivo INI onde estão dos dados de configuração.
 
procedure TConexao.Conectar(var Conexao: TSQLConnection): Esse método inicialmente dispara o método que lê (LeINI()) os dados do arquivo INI, posteriormente esses dados são atribuídos aos devidos atributos de configuração do parâmetro Conexao (componente SQLConnection) que é passado como referência para o método.
 
– procedure TConexao.Create(Path: string; Secao: string): Esse é o método construtor da classe, ele recebe 2 parâmetros, o primeiro contem o caminho do arquivo INI e o segundo a seção dentro do arquivo onde se encontram os dados de configuração, ambos são atribuídos aos seus respectivos atributos.
 
– procedure TConexao.LeINI(): Esse método é quem realmente faz a leitura dos dados no arquivo INI e atribui para os atributos da classe, ele encontra o arquivo a partir do caminho passado no método construtor e atribuído ao atributo Path e lê os dados da seção que também foi passada no método construtor e atribuida ao atributo Secao.

Observação: Colega Marco Salles profundo conhecedor em Delphi me sugeriu uma pequena citação, a propriedade LoadParamsOnConnect do componente SQLConnection precisa estar setada como FALSE, para que a leitura dos parâmetros funcione.

Abaixo um exemplo do arquivo INI, simulando uma conexão com o banco de dados db_blog, observem o nome da seção “[Conexao_MySQL]“:

String_Conexao.ini

Para usar esta classe existem diferentes maneiras, eu pessoalmente gosto de trabalhar com Data Module em meus projetos, nesse caso adiciono um componente SQLConnection no meu DataModule no evento BeforeConnect (Antes de conectar) do SQLConnection instancio o objeto.

Nesse artigo construí uma pequena aplicação com apenas um formulário e nele adicionei um TSQLConnection, um botão e um label para exibir o status da conexão. No evento OnClik do botão chamo uma conexão ou desconecto do banco usando o operador lógico NOT. No evento BeforeConnect é instanciado o objeto passando como parâmetro o caminho do arquivo INI que está no mesmo diretório do executável. Segue abaixo o código desse formulário:

Post relacionado:  Fim do suporte a Engine BDE no Delphi XE7 preocupa!

frmConexao.pas

Observação: Considero uma boa prática colocar o arquivo INI no mesmo diretório do executável da aplicação, dessa maneira fica mais fácil informar o caminho do mesmo.
 
Agora vamos aos testes, inicialmente o formulário é carregado desconectado e o botão habilitado para conexão:
Conexão DBExpress aberta

Ao clicar no botão Conectar o label é atualizado para ‘Conectado!’ e o botão habilitado para desconectar:

Conexão DBExpress fechada
 
Bom pessoal demonstrei nesse artigo como utilizar uma classe para carregar dados de configuração de um arquivo INI e carregá-los em um componente SQLConnection. Como sempre tenho que mencionar, existem diversas maneiras de se resolver o mesmo problema em programação, essa solução se adequá as minhas necessidades, mas pode ser infinitamente melhorada.
 
Até a próxima …
Post relacionado:  Conexão FireDAC + Firebird com arquivo INI no Delphi XE6
Show Buttons
Hide Buttons