FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error conexión remota con aliases.conf
Hola foro, tengo un problema al conectarme desde dbexpress delphi 7, utilizo el aliases.conf con la ruta específica de la base. Si la conexión es local se conecta bien, pero si la ruta es de una base remota no abre la base, al abrir la base intenta abrir el nombre del alias de la base en la ruta donde está mi aplicación de desarrollo. Si pongo la ruta completa (tal y como está en el aliases.conf) con la IP directamente en la propiedad DataBase del componente (TSQLConection) en lugar del alias de la base si se conecta correctamente.
Estoy utilizando Firebird 2.1, DbExpress y Delphi 7 y utilizo una vpn con hamachi para acceder remotamente a la base. Tengo Windows 7 de 64bits. Ya intenté con estas asignaciones en mi aliases.conf y me envía el mismo error. BaseR = SERVIDOR/3050:C:\MIBASE\BASE.MDB BaseR = "SERVIDOR/3050:C:\MIBASE\BASE.MDB" BaseR = x.x.x.x./3050:C:\MIBASE\BASE.MDB Sin embargo, como lo dije anteriormente si pongo directamente la dirección de la base en el componente dbexpress donde va el parámetro de Base se conecta sin problema, pero si pongo el nombre del alias de la base (BaseR) me envía error al abrir la base. Me envía mensaje de error de I/O Error for file “C:\MI_APLICACION\BaseR” Error while trying to open file. El sistema no puede encontrar el archivo especificado. Se que poniendo directamente la ruta de conexión en el componente funcionaría pero quedaría fijo y para cualquier cambio tendría que re-compilar aplicación. Agradezco algún comentario... |
#2
|
|||
|
|||
No toma los parámetros del aliases.conf
Estuve depurando y lo que noté es que el componente no está tomando los datos de las propiedades del archivo aliases.conf, lo que tuve que hacer es meter en el dbxconection.ini la ruta de la base para que tomara correctamente la ruta y nombre del archivo de base de datos. ¿Será un bug del componente o algo me faltará para que la tome correctamente el parámetro de DataBase del TSQLConection?
|
#3
|
||||
|
||||
Como comprenderás, tú eres nuestros ojos y nuestras manos, no vemos nada de tu código ni tampoco podemos decirte si falta algo o está mal, no tenemos acceso a tu ordenador.
Deberías dar explicaciones mucho más detalladas de cómo tienes montado el sistema, código, parámetros, componentes, enlaces, etc. De todas formas, te recomiendo lo más simple, echa un vistazo a cualquier ejemplo que encuentres por los foros, tutorial, etc. y síguelo, así podrás comprobar qué está mal en tu proyecto. |
#4
|
||||
|
||||
Hola to_to.
Coincido con Casimiro, la información que nos das es un poco escasa. De todos modos te hago una una pregunta que tal vez resulte obvia, pero ¿ Desde donde intentas la conexión ?. Pregunto, por que el alias debe existir solamente del lado del servidor e incluir la ruta completa a la base de datos: ServerName:Drive:\Path\DatabaseFile. Código:
# Definición del alias (nombre del servidor: SERVER) ALIAS = C:\PROGRAMA\DATOS\DATABASE.FDB Código:
\\SERVER\ALIAS Nota: Lo anterior aplica para S.O. Windows. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Antes que nada gracias por tomarse el tiempo... tienen razón.., lo que pasa que se enfrasca uno en el problema y de momento no pensé en poner más detalles.., mira la conexión la estoy haciendo desde el cliente. En el servidor solo está la base montada. Van los detalles y lo que además estoy revisando.
Base de datos FireBird 2.1., aplicación desde Delphi 7 con DBExpress. Mi forma de conectarme es a través del archivo aliases.conf, en el escribo la cadena de conexión como lo comenté utilizando un alias para la ruta física de mi base de datos. Al momento que me quiero conectar en el código solo abro y cierro la propiedad LoadParamsonConnect, para que actualice los parámetros de la conexión que viene en el archivo dbxconection.ini donde le especifico en el parámetro Database su alias correspondiente ("DataBase = Alias") y donde el "Alias" está definido en el archivos aliases.conf y que supongo lo convertirá a la dirección que tiene asignada. Archivo dbxconnections.ini Código:
[MiBase] DriverName=Interbase Database = BaseR RoleName=RoleName User_Name=sysdba Password=masterkey ServerCharSet= SQLDialect=1 ErrorResourceFile= LocaleCode=0000 BlobSize=-1 CommitRetain=False WaitOnLocks=True Interbase TransIsolation=ReadCommited Trim Char=False Archivo aliases.conf Código:
BaseR = SERVIDOR/3050:C:\MIBASE\BASE.MDB Así hago la conexión a la base al construir el módulo de datos.
Cuando depuro, en la función ConectaBD y reviso, trae bien los parámetros pero yo esperaría que convirtiera el Alias "BaseR" por su valor asignado en el aliases.conf, sin embargo toma el valor de "BaseR" como si fuera el nombre de la base de datos y por consiguiente envía error de que no encuentra el archivo para abrirlo. Si yo pongo la ruta y nombre de la base directamente en el parámetro BaseDatos se conecta sin problema o si cambio en el aliases.conf la ruta de la base por una ruta local de mi equipo cliente se conecta bien; es decir supongo yo hace bien la conversión del "Alias" por su valor asignado. Espero haberme explicado y nuevamente gracias por su apoyo. Última edición por to_to fecha: 16-06-2015 a las 19:02:23. |
#6
|
||||
|
||||
Hola to_to.
Siguiendo la sintáxis de mi mensaje anterior y no mediando otros problemas, de este modo tiene que funcionar:
Ejemplo de uso:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Gracias eficsa, así es de esta forma si se conecta. Lo que quería evitar es pasarle directamente la ruta; sino más bien que la tomara del archivo del aliases.conf para no modificar código o meter cosas adicionales, pero bueno es muy válida tu solución.
Me pareció ver una forma de recuperar los aliases que se tienen asignados, haré la prueba de recuperarlos y el valor que traiga el alias de mi base y si no resulta construiré un archivo .ini para guardar ahí la configuración a la base de datos. Gracias nuevamente, les comento cuando tenga la solución final. |
#8
|
||||
|
||||
Hola to_to
Cita:
Como ejemplo, teniendo en en aliases.conf: ALIAS = C:\PROGRAMA\DATOS\DATABASE.FDB, fijate que cuando en el cliente usas: \\SERVIDOR\ALIAS el servidor lo convertirá a: C:\PROGRAMA\DATOS\DATABASE.FDB. Si mas adelante se te ocurriera cambiar la bd a D:\XXXX\DATABASE.FDB, sólo tendrías que cambiar la ruta en archivo aliases.conf del equipo servidor por: ALIAS = D:\XXXX\DATABASE.FDB. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 17-06-2015 a las 05:19:19. |
#9
|
|||
|
|||
Muchas gracias por los comentarios y sugerencias, efectivamente lo resolví así dejando el alias como lo comentó eficsa y dejando esa parte del servidor como un parámetro ya que esta conexión puede variar. La idea es que se pueda instalar en cualquier cliente y si por alguna razón cambian de servidor o se instala en otra parte la base se pueda configurar desde archivos .ini y/o .conf los accesos a la base sin tocar el código.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
error en conexion remota a bd | pamda | Firebird e Interbase | 1 | 12-11-2014 22:36:23 |
Ayuda con error en conexión a MySQL remota | LucasBols | C++ Builder | 8 | 04-06-2012 19:42:35 |
Error: conexion remota PostgreSQL | ioel | PostgreSQL | 3 | 28-07-2010 12:17:52 |
Error de conexión remota a Firebird | JosepGA | Conexión con bases de datos | 2 | 16-09-2008 16:23:52 |
dbxconection.conf, dbxdrivers.conf donde estan??? | Alex2000 | Lazarus, FreePascal, Kylix, etc. | 0 | 14-02-2004 16:26:41 |
|