Hoje vou mostrar uma conexão do delphi com o banco de dados Mysql versão 5.1, mas que pode ser adaptado para a conexão em outras versões.
Primeiramente a conexão vai ser feita em um datamodule chamado dmConexao, onde contera um componente TSQLConnection e quantas TSQLQuery acharem necessárias, no meu caso, so coloquei uma query.
vamos la ...
Passos:
1 - Criar um datamodule com o nome dmConexao.
2 - Colocar um Componente de conexão ao banco do tipo TSQLConnection e uma query do tipo TSQLQuery, ambos da aba DBExpress.
3 - Configurar o componente de conexão ao banco, conforme o print:
4 - Colocar os arquivos libmysql.dll,qtintf70.dll,dbxopenmysql50.dll na pasta corrente do projeto e caso for colocar o exe em outra pasta, copiar para la também.
5 - Criar uma procedure igual abaixo:
procedure TdmConexao.ConectaBanco();
varsIp,sBase,sUser,sPassword:string;
begin
Try
sIp := 'localhost';
sBase := 'nome_banco';
sUser := 'nome_usuario_banco';
sPassword := 'senha_usuario_banco';
SQLConnection.Connected := False;
SQLConnection.Params.Clear();
SQLConnection.DriverName := 'MySQL (Core Lab)';
SQLConnection.GetDriverFunc := 'getSQLDriverMYSQL50';
SQLConnection.LibraryName := 'dbxopenmysql50.dll';
SQLConnection.VendorLib := 'libmysql.dll';
SQLConnection.LoginPrompt := False;
SQLConnection.Params.Append('Database='+sBase);
SQLConnection.Params.Append('User_Name='+sUser);
SQLConnection.Params.Append('Password='+sPassword);
SQLConnection.Params.Append('HostName='+sIp);
SQLConnection.Connected := True;
except
On E:exception do begin
Application.MessageBox(PChar('Não foi possivel conectar a base'+#13#10+
E.Message),
'Configurações de Conexão',MB_ICONERROR);
Application.Terminate();
end;
end;
end;
6 - Chamar a procedure ConectaBanco no evento on Create do datamodule:
procedure TdmConexao.DataModuleCreate(Sender: TObject);
beginConectaBanco();
end;
Observações :
- Caso ocorra alguma mensagem de erro ao conectar, verifique:
- Se as dlls estao na pasta de output do exe.
- Se as variaveis sIp,sBase,sUser,sPassword estao com valores corretos.
##ATENÇÃO ##
O zip com os codigo fontes do datamodule e as dlls , seguem abaixo :
1 comentários:
Bom dia Gustavo!
Parabéns pelo artigo,
Quando voce tem uma procedure no mysql, que não retorna nada, (para truncar uma tabela por exemplo), voce chama a procedure, pela própria SqlQuery usando a instrução CALL?
Eu estou tentando e até executa so que da o erro de nenhum cursor retornado na query, gostaria de tratar esse erro
Abraços
Postar um comentário