Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2019
shinopeat87 shinopeat87 is offline
Miembro
 
Registrado: oct 2018
Posts: 21
Poder: 0
shinopeat87 Va por buen camino
no puedo conectar mi aplicacion a la base de datos

hola amigos como estan espero recibir una vez mas su ayuda. les comento que me he enriquecido de informacion con el tema de los archivos.ini para la conexion de mi aplicacion con mysql.
tengo dos maquinas (A) y (B)conectadas en red, en la maquina A he instalado mysql server 5.7 y he creado una aplicacion de ventas que se conecta a una base de datos creada mediante workbrench, tengo las librerias de mysql (libmysl.dll) en su lugar y todo funciona correctamente.
he creado un archivo.ini llamado conexionbase.ini donde tengo escrito los siguientes parametros que necesito para que el componente FIDERAC
me realize la correcta conexion.

[bd]
Database="Grsistema-db"
[usuario]
User_Name="root"
[pas]
Password="root"
[servidor]
Server="localhost"
[driver]
DriverID="MySQL"
[puerto]
Port="3306"

en el evento oncreate del formprincipal puse el siguiente codigo

Código Delphi [-]
procedure TFormlogin.FormCreate(Sender: TObject);
var
bd,usuario,pas,servidor,driver,puerto : string;
IniFile : TIniFile ;
begin
  with ModuloDatos do
  begin
   con1.Connected:=False;
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'conexionbase.ini');
   bd := IniFile.ReadString('bd','Database','');
   usuario := IniFile.ReadString('usuario','User_Name','');
   pas := IniFile.ReadString('pas','Password','');
   servidor:= IniFile.ReadString('servidor','Server','');
   driver := IniFile.ReadString('driver','DriverID','');
   puerto := IniFile.ReadString('puerto','Port','');

   If bd = '' then
   begin
   ShowMessage('Error al cargar Base de Datos');
   Application.Terminate;
   end
   else
   begin
   con1.Params.Clear;

   con1.Params.Database:= bd;
   con1.Params.UserName:=usuario;
   con1.Params.Password:=pas;
   con1.Params.Add('Server='+servidor);
   con1.Params.DriverID:=driver;
   con1.Params.Add('Port='+puerto);
   con1.Connected:= True;
   end;

  end;

end;
esto me levanta sin problemas el programa ya que este lee lo que tiene el archivo.ini y se conecta a la base de datos
ahora mi problema es el siguiente, tenia entendido que cuando lleve la aplicacion a la maquina B solo deberia modificar el archivo ini

[servidor]
Server="localhost" por "ipdelservidor"

lo hago pero al iniciar el programa me tira este error :

[FireDAC][phys][Mysql]Access denied for user 'root'@'ipdelamaquinaB'(using password: YES)

no se a que se debe.. instale workbrench en la maquina B y pude conectarme remotamente pero no puedo hacerlo desde mi aplicacion.
Responder Con Cita
  #2  
Antiguo 21-10-2019
shinopeat87 shinopeat87 is offline
Miembro
 
Registrado: oct 2018
Posts: 21
Poder: 0
shinopeat87 Va por buen camino
creo que encontre la solucion diganme si estoy en lo correcto:

cambie el nombre del usuario a conexionmaquinaB que es el nombre de mi usuario en la conexion remota y en server puse la ip del servidor
todo esto es del archivo. ini

[bd]
Database="Grsistema-db"
[usuario]
User_Name="conexionmaquinaB"
[pas]
Password="root"
[servidor]
Server="ipdelservidor"
[driver]
DriverID="MySQL"
[puerto]
Port="3306

:')
Responder Con Cita
  #3  
Antiguo 21-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También puedes dejarlo así:
Código:
[bd]
Database="Grsistema-db"
User_Name="conexionmaquinaB"
Password="root"
Server="ipdelservidor"
DriverID="MySQL"
Port="3306
Responder Con Cita
  #4  
Antiguo 22-10-2019
shinopeat87 shinopeat87 is offline
Miembro
 
Registrado: oct 2018
Posts: 21
Poder: 0
shinopeat87 Va por buen camino
Casimiro Notevi amigo si lo cambio a como tu indicas debo cambiar algo de codigo? o simplemente lo toma igual? hablo de este parte del codigo:


Código Delphi [-]
  con1.Connected:=False;
   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'conexionbase.ini');
   bd := IniFile.ReadString('bd','Database','');
   usuario := IniFile.ReadString('usuario','User_Name','');
   pas := IniFile.ReadString('pas','Password','');
   servidor:= IniFile.ReadString('servidor','Server','');
   driver := IniFile.ReadString('driver','DriverID','');
   puerto := IniFile.ReadString('puerto','Port','');
Responder Con Cita
  #5  
Antiguo 22-10-2019
Arturo.Molina Arturo.Molina is offline
Miembro
 
Registrado: feb 2018
Posts: 32
Poder: 0
Arturo.Molina Va por buen camino
Cita:
Empezado por shinopeat87 Ver Mensaje
Casimiro Notevi amigo si lo cambio a como tu indicas debo cambiar algo de codigo? o simplemente lo toma igual? hablo de este parte del codigo:

Código Delphi [-]
con1.Connected:=False;
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'conexionbase.ini');
bd := IniFile.ReadString('bd','Database','');
usuario := IniFile.ReadString('usuario','User_Name','');
pas := IniFile.ReadString('pas','Password','');
servidor:= IniFile.ReadString('servidor','Server','');
driver := IniFile.ReadString('driver','DriverID','');
puerto := IniFile.ReadString('puerto','Port','');
Hola shinopeat87, sí, deberías modificar el nombre de la sección del archivo ini de donde lees los parámetros, pero yo además, eliminaría parte del codigo, que es redundante, para dejarlo así:
Código Delphi [-]
begin
con1.Connected:=False;
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'conexionbase.ini');
con1.Params.Clear;
con1.Params.Database:= IniFile.ReadString('db', 'Database', '');
con1.Params.UserName:= IniFile.ReadString('db', 'User_Name', '');
con1.Params.Password:= IniFile.ReadString('db', 'Password', '');
con1.Params.Add('Server='+ IniFile.ReadString('db','Server','') );
con1.Params.DriverID:= IniFile.ReadString('db','DriverID','');
con1.Params.Add('Port='+ IniFile.ReadString('db','Port','') );

If bd = '' then
begin
ShowMessage('Error al cargar Base de Datos');
Application.Terminate;
end else
con1.Connected:= True;
end;

IniFile.Close;   // ----Recuerda tambien que debes cerrar el archivo ini cuando acabes de usarlo

Saludos
Responder Con Cita
  #6  
Antiguo 22-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No puedo extraer datos de una base de datos antigua zeta2 Conexión con bases de datos 26 18-11-2016 21:55:25
Conectar base de datos Firebird con base de datos Oscommerce 2.3.3 Adriadob Firebird e Interbase 11 31-10-2012 12:28:46
Conectar mi aplicacion a una base de datos MySQL remota myj Conexión con bases de datos 3 02-06-2010 00:56:14
No me puedo conectar a una base desde el cliente Lore Castillo Oracle 1 09-06-2005 18:33:45
Conectar una aplicacion cliente con base de datos en servidor AYUDA Argaron Conexión con bases de datos 1 16-05-2003 20:56:34


La franja horaria es GMT +2. Ahora son las 00:54:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi