Conexao Delphi com Mysql
Pessoal estou na parte final do meu projeto na troca de pc ao iniciar o projeto abre a tela de
login percebo que esta havendo conexao com o banco de dados porque se eu mudar algo
no banco nem inicia a tela de login. quando ponho o login e senha me retorna este erro
se alguem puder ajudar.
---------------------------
softarquivo
---------------------------
[FireDAC][Phys][MySQL] Can't connect to MySQL server on 'localhost' (10061)
---------------------------
OK
Fiz um teste tirando o codigo abaixo que do meu config funcionou normal
no outro pc mais ai funciona so local se puder me ajudar, em que estou errando no
codigo esta assim o codigo.
#CODIGO#
var server, user, senha, lib : string;
var porta : Integer;
var conf : TIniFile;
begin
//PARAMETROS DE CONEXAO
SetCurrentDir(ExtractFilePath(Application.ExeName));
conf := TIniFile.Create(GetCurrentDir + '\\\\conf.ini');
lib := GetCurrentDir + '\\\\libmysql.dll';
SERVER := conf.ReadString('BANCO','SERVER','');
USER := conf.ReadString('BANCO','USER','');
SENHA := conf.ReadString('BANCO','SENHA','');
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
conecta.Connected := false;
mysql_link.VendorLib := LIB;
mysql_link.DriverID := 'MysQl';
conecta.DriverName := 'Mysql';
conecta.Params.Add('server=' +SERVER);
conecta.Params.Add('user_name=' + USER);
conecta.Params.Add('password=' + SENHA);
conecta.Params.Add('port=' +IntToStr(PORTA));
try
conecta.Connected := True;
Except
end;
end;
login percebo que esta havendo conexao com o banco de dados porque se eu mudar algo
no banco nem inicia a tela de login. quando ponho o login e senha me retorna este erro
se alguem puder ajudar.
---------------------------
softarquivo
---------------------------
[FireDAC][Phys][MySQL] Can't connect to MySQL server on 'localhost' (10061)
---------------------------
OK
Fiz um teste tirando o codigo abaixo que do meu config funcionou normal
no outro pc mais ai funciona so local se puder me ajudar, em que estou errando no
codigo esta assim o codigo.
#CODIGO#
var server, user, senha, lib : string;
var porta : Integer;
var conf : TIniFile;
begin
//PARAMETROS DE CONEXAO
SetCurrentDir(ExtractFilePath(Application.ExeName));
conf := TIniFile.Create(GetCurrentDir + '\\\\conf.ini');
lib := GetCurrentDir + '\\\\libmysql.dll';
SERVER := conf.ReadString('BANCO','SERVER','');
USER := conf.ReadString('BANCO','USER','');
SENHA := conf.ReadString('BANCO','SENHA','');
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
conecta.Connected := false;
mysql_link.VendorLib := LIB;
mysql_link.DriverID := 'MysQl';
conecta.DriverName := 'Mysql';
conecta.Params.Add('server=' +SERVER);
conecta.Params.Add('user_name=' + USER);
conecta.Params.Add('password=' + SENHA);
conecta.Params.Add('port=' +IntToStr(PORTA));
try
conecta.Connected := True;
Except
end;
end;
Anderson Saldanha
Curtidas 0
Melhor post
Luiz Vichiatto
02/10/2017
Experimente colocar assim
conf := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'conf.ini'); lib := ExtractFilePath(Application.ExeName)+ 'libmysql.dll';
GOSTEI 1
Mais Respostas
Anderson Saldanha
02/10/2017
i ae luizaummm funcionou nao de o mesmo erro estou achando que tem alguma coisa a ver com este
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
GOSTEI 1
Anderson Saldanha
02/10/2017
i ae luizaummm funcionou nao de o mesmo erro estou achando que tem alguma coisa a ver com este
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
GOSTEI 0
Raimundo Pereira
02/10/2017
Boa tarde.
Anderson qual a versão do seu delphi?
Está usando o firedac ou Zeos?
Anderson qual a versão do seu delphi?
Está usando o firedac ou Zeos?
GOSTEI 0
Luiz Vichiatto
02/10/2017
Então implemente uma exception
try
conecta.Connected := True;
Except
on e : exception do
MessageBox ("Erro " + e.message) //Não lembro do comando completo do messagebox
end;
i ae luizaummm funcionou nao de o mesmo erro estou achando que tem alguma coisa a ver com este
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
GOSTEI 0
Anderson Saldanha
02/10/2017
Estou usando Delphi xe7 com firedac.
GOSTEI 0
Raimundo Pereira
02/10/2017
Bom dia.
Fiz um exemplo:
Para chamar a função:
Sucesso!
Fiz um exemplo:
uses
udm,
Inifiles,
1. Vamos reorganizar seu arquivo "CONF.INI" .
O mesmo deverá ser salvo na pasta do EXE.
Deverá salvar libmysql.dll dentro da pasta do EXE.
Estrutura X Nomenclatura dos campos:
[CNX_MYSQL]
DATABASE=test
USERNAME=root
PASSWORD=
SERVER=localhost
PORT=3306
VENDORLIB=libmysql.dll
DRIVERID=MySQL
2. Criei uma Função: ConectBD
public
{ Public declarations }
Function ConectBD():Boolean;
implementation
{$R *.dfm}
Function TFP.ConectBD():Boolean;
Var Conf:tinifile;
var Caminho_Arquivo:STRING;
begin
Caminho_Arquivo:=ExtractFilePath(Application.ExeName)+'CONF.INI';
if not FileExists (Caminho_Arquivo) then
begin
ShowMessage('Arquivo CONF.INI, não encontrado');
end
else
Conf:=TIniFile.Create(Caminho_Arquivo);
with dm.FDConnection1 do
begin
params.Database:= conf.ReadString('CNX_MYSQL','DATABASE','');
params.UserName:= conf.ReadString('CNX_MYSQL','USERNAME','');
params.Password:= conf.ReadString('CNX_MYSQL','PASSWORD','');
params.DriverID:= conf.ReadString('CNX_MYSQL','DRIVERID','');
Params.Add('Server=' +conf.ReadString('CNX_MYSQL','SERVER',''));
Params.Add('Port=' +conf.ReadString('CNX_MYSQL','PORT',''));
DM.FDPhysMySQLDriverLink1.VendorLib:=conf.ReadString('CNX_MYSQL','VendorLib','');
try
DM.FDConnection1.Connected:=TRUE;
ShowMessage('Conexão realizada com sucesso!');
Except
on E : Exception do
begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;
end;
Para chamar a função:
procedure TFP.Button1Click(Sender: TObject); begin ConectBD; end;
Sucesso!
GOSTEI 1
Anderson Saldanha
02/10/2017
Bom dia.
Fiz um exemplo:
Para chamar a função:
Sucesso!
Fiz um exemplo:
uses
udm,
Inifiles,
1. Vamos reorganizar seu arquivo "CONF.INI" .
O mesmo deverá ser salvo na pasta do EXE.
Deverá salvar libmysql.dll dentro da pasta do EXE.
Estrutura X Nomenclatura dos campos:
[CNX_MYSQL]
DATABASE=test
USERNAME=root
PASSWORD=
SERVER=localhost
PORT=3306
VENDORLIB=libmysql.dll
DRIVERID=MySQL
2. Criei uma Função: ConectBD
public
{ Public declarations }
Function ConectBD():Boolean;
implementation
{$R *.dfm}
Function TFP.ConectBD():Boolean;
Var Conf:tinifile;
var Caminho_Arquivo:STRING;
begin
Caminho_Arquivo:=ExtractFilePath(Application.ExeName)+'CONF.INI';
if not FileExists (Caminho_Arquivo) then
begin
ShowMessage('Arquivo CONF.INI, não encontrado');
end
else
Conf:=TIniFile.Create(Caminho_Arquivo);
with dm.FDConnection1 do
begin
params.Database:= conf.ReadString('CNX_MYSQL','DATABASE','');
params.UserName:= conf.ReadString('CNX_MYSQL','USERNAME','');
params.Password:= conf.ReadString('CNX_MYSQL','PASSWORD','');
params.DriverID:= conf.ReadString('CNX_MYSQL','DRIVERID','');
Params.Add('Server=' +conf.ReadString('CNX_MYSQL','SERVER',''));
Params.Add('Port=' +conf.ReadString('CNX_MYSQL','PORT',''));
DM.FDPhysMySQLDriverLink1.VendorLib:=conf.ReadString('CNX_MYSQL','VendorLib','');
try
DM.FDConnection1.Connected:=TRUE;
ShowMessage('Conexão realizada com sucesso!');
Except
on E : Exception do
begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;
end;
Para chamar a função:
procedure TFP.Button1Click(Sender: TObject); begin ConectBD; end;
Sucesso!
Nao entendi muito bem o começo de seu codigo
esta parecendo com java depois passa para o estilo
delphi
GOSTEI 0
Anderson Saldanha
02/10/2017
Bom dia.
Fiz um exemplo:
Para chamar a função:
Sucesso!
Fiz um exemplo:
uses
udm,
Inifiles,
1. Vamos reorganizar seu arquivo "CONF.INI" .
O mesmo deverá ser salvo na pasta do EXE.
Deverá salvar libmysql.dll dentro da pasta do EXE.
Estrutura X Nomenclatura dos campos:
[CNX_MYSQL]
DATABASE=test
USERNAME=root
PASSWORD=
SERVER=localhost
PORT=3306
VENDORLIB=libmysql.dll
DRIVERID=MySQL
2. Criei uma Função: ConectBD
public
{ Public declarations }
Function ConectBD():Boolean;
implementation
{$R *.dfm}
Function TFP.ConectBD():Boolean;
Var Conf:tinifile;
var Caminho_Arquivo:STRING;
begin
Caminho_Arquivo:=ExtractFilePath(Application.ExeName)+''CONF.INI'';
if not FileExists (Caminho_Arquivo) then
begin
ShowMessage(''Arquivo CONF.INI, não encontrado'');
end
else
Conf:=TIniFile.Create(Caminho_Arquivo);
with dm.FDConnection1 do
begin
params.Database:= conf.ReadString(''CNX_MYSQL'',''DATABASE'','''');
params.UserName:= conf.ReadString(''CNX_MYSQL'',''USERNAME'','''');
params.Password:= conf.ReadString(''CNX_MYSQL'',''PASSWORD'','''');
params.DriverID:= conf.ReadString(''CNX_MYSQL'',''DRIVERID'','''');
Params.Add(''Server='' +conf.ReadString(''CNX_MYSQL'',''SERVER'',''''));
Params.Add(''Port='' +conf.ReadString(''CNX_MYSQL'',''PORT'',''''));
DM.FDPhysMySQLDriverLink1.VendorLib:=conf.ReadString(''CNX_MYSQL'',''VendorLib'','''');
try
DM.FDConnection1.Connected:=TRUE;
ShowMessage(''Conexão realizada com sucesso!'');
Except
on E : Exception do
begin
ShowMessage(''Exception class name = ''+E.ClassName);
ShowMessage(''Exception message = ''+E.Message);
end;
end;
end;
end;
Para chamar a função:
procedure TFP.Button1Click(Sender: TObject); begin ConectBD; end;
Sucesso!
boiei foi mal entendi o começo
GOSTEI 0
Anderson Saldanha
02/10/2017
Bom dia.
Fiz um exemplo:
Para chamar a função:
Sucesso!
Fiz um exemplo:
uses
udm,
Inifiles,
1. Vamos reorganizar seu arquivo "CONF.INI" .
O mesmo deverá ser salvo na pasta do EXE.
Deverá salvar libmysql.dll dentro da pasta do EXE.
Estrutura X Nomenclatura dos campos:
[CNX_MYSQL]
DATABASE=test
USERNAME=root
PASSWORD=
SERVER=localhost
PORT=3306
VENDORLIB=libmysql.dll
DRIVERID=MySQL
2. Criei uma Função: ConectBD
public
{ Public declarations }
Function ConectBD():Boolean;
implementation
{$R *.dfm}
Function TFP.ConectBD():Boolean;
Var Conf:tinifile;
var Caminho_Arquivo:STRING;
begin
Caminho_Arquivo:=ExtractFilePath(Application.ExeName)+'CONF.INI';
if not FileExists (Caminho_Arquivo) then
begin
ShowMessage('Arquivo CONF.INI, não encontrado');
end
else
Conf:=TIniFile.Create(Caminho_Arquivo);
with dm.FDConnection1 do
begin
params.Database:= conf.ReadString('CNX_MYSQL','DATABASE','');
params.UserName:= conf.ReadString('CNX_MYSQL','USERNAME','');
params.Password:= conf.ReadString('CNX_MYSQL','PASSWORD','');
params.DriverID:= conf.ReadString('CNX_MYSQL','DRIVERID','');
Params.Add('Server=' +conf.ReadString('CNX_MYSQL','SERVER',''));
Params.Add('Port=' +conf.ReadString('CNX_MYSQL','PORT',''));
DM.FDPhysMySQLDriverLink1.VendorLib:=conf.ReadString('CNX_MYSQL','VendorLib','');
try
DM.FDConnection1.Connected:=TRUE;
ShowMessage('Conexão realizada com sucesso!');
Except
on E : Exception do
begin
ShowMessage('Exception class name = '+E.ClassName);
ShowMessage('Exception message = '+E.Message);
end;
end;
end;
end;
Para chamar a função:
procedure TFP.Button1Click(Sender: TObject); begin ConectBD; end;
Sucesso!
Ignora as outras coisas que postei porque fiz o que voce disse meio que funcionou ele localiza o CONF.INI agora so que esta
dizendo que eu nao estou usando senha no banco de dados sendo que tem e coloquei no conf.ini
---------------------------
Debugger Exception Notification
---------------------------
Project softarquivo.exe raised exception class EMySQLNativeException with message '[FireDAC][Phys][MySQL] Access denied for user 'root'@'localhost' (using password: NO)'.
---------------------------
Break Continue Help
---------------------------
GOSTEI 0