Ver Mensaje Individual
  #1  
Antiguo 04-02-2013
OscarBravo OscarBravo is offline
Miembro
 
Registrado: feb 2007
Posts: 23
Reputación: 0
OscarBravo Va por buen camino
Solicito ayuda respecto a Conexión remota a una base de datos.

Saludos a todos los participantes de este foro.

Solicito su colaboración en lo siguiente:
Estoy desarrollando una aplicación en Delphi 2009. La base de datos es MySql versión 5.027 mediante DbExpress.
Tengo Un objeto sqlConnection con los siguientes parámetros de conexión, los cuales los establezco en tiempo de diseño:

Código Delphi [-]
DriverName=MySQL
HostName=localhost
Database=test
User_Name=root
Password=admin
ServerCharSet=
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Compressed=False
Encrypted=False

Con estos parámetros mi aplicación se conecta perfectamente a la base de datos, ya que la estoy ejecutando localmente.

Teniendo en cuenta que la aplicación estará instalada por lo menos en dos o tres máquinas y estas a su vez deben conectarse a la m{aquina donde est{a la base de datos, decidí cargar los parámetros de conexión en tiempo de ejecución así (BeforeConnect del objeto SQLConnection ), de modo que se puedan leer los parámetros de un archivo .ini, el cual grabé con el nombre connections.ini y es una copia de dbxconnections.ini:

Código Delphi [-]
procedure TDataModule1.SQLConnectionBeforeConnect(Sender: TObject);
begin
   TSQLConnection(Sender).ConnectionName := 'MySQLConnection';
   TSQLConnection(Sender).LoadParamsFromIniFile(ExtractFileDIR(Application.ExeName) + '\connections.ini');
end;


El contenido del archivo ini es el siguiente:

Código Delphi [-]
[MySQLConnection]
;DelegateConnection=DBXTraceConnection
DriverName=MySQL
HostName=localhost
Database=test
User_Name=root
Password=admin
ServerCharSet=
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Compressed=False
Encrypted=False

Esto también me funciona perfectamente, siempre y cuando ejecute la aplicación local mente.

Para ejecutar la aplicación desde otro equipo, edito el archivo ini y en HostName escribo la IP del computador en donde se encuentra instalado My Sql, y por ende contiene la base de datos.

Esta es la única instrucción a la que la hago cambio en el archivo ini (En el equipo remoto): HostName = 192.168.0.10
Lo que no sé es si debo colocarle:

HostName = 192.168.0.10

Ó

HostName = \\192.168.0.10

En todo caso al ejecutar la aplicación, se genera el siguiente error.

Exception EReaderError in module Pos.Exe at 0002CD52.
Error Reading SQLConnection.DriverName: Cannot find connections files from application directory (C:ProgramFiles\Pos) or system registry (\Software\CodeGear○2BDS\6.0\dbExpress)


Agradezco me ayuden con lo siguiente:

¿Como especifico en el archivo ini el HostName?

¿Que dll necesito en la máquina remota?

¿Se debe compartir el disco en donde está la base de datos?

Atentamente,

Oscar Bravo
Responder Con Cita