Conexao Delphi com Mysql
02/10/2017
0
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
Post mais votado
02/10/2017
conf := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'conf.ini'); lib := ExtractFilePath(Application.ExeName)+ 'libmysql.dll';
Luiz Vichiatto
Mais Posts
02/10/2017
Anderson Saldanha
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
03/10/2017
Anderson Saldanha
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
03/10/2017
Raimundo Pereira
Anderson qual a versão do seu delphi?
Está usando o firedac ou Zeos?
03/10/2017
Luiz Vichiatto
try conecta.Connected := True; Except on e : exception do MessageBox ("Erro " + e.message) //Não lembro do comando completo do messagebox end;
Integer nesta linha
#Codigo
PORTA := integer (conf.ReadString('BANCO','PORTA',''));
05/10/2017
Raimundo Pereira
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!
05/10/2017
Anderson Saldanha
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
05/10/2017
Anderson Saldanha
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
05/10/2017
Anderson Saldanha
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
---------------------------
Clique aqui para fazer login e interagir na Comunidade :)
Inserção de url
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.