Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Solicito ayuda respecto a Conexión remota a una base de datos. (https://www.clubdelphi.com/foros/showthread.php?t=82169)

OscarBravo 04-02-2013 01:24:25

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

Casimiro Notevi 04-02-2013 11:20:08

Mira los enlaces del final de página, abajo del todo, a ver si te sirven.

jpgonzalez 13-02-2013 12:21:02

Buenas, no se como funciona DbExpress, pero dado mi experiencia con Zeos te hago dos preguntas:

1- Hay alguna libreria necesaria para que se haga la conexion con DbExpress?... Por ejemplo, Zeos necesita una dll que se llama libmysql.dll (si mal no recuerdo) y por mas que la base este en otra maquina, y el componente de conexion este configurado a la perfeccion, si esa libreria no esta en el equipo local, el programa tira error.

2-Probaste poner en el Hostname el nombre del equipo en lugar de la IP?... Yo muchas veces en redes internas para testear los programas configuro la conexion con el nombre de la PC.

Espero te sirva, un abrazo!


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

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