Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error al conectar base de datos Interbase (https://www.clubdelphi.com/foros/showthread.php?t=67882)

amparog 12-05-2010 00:30:22

Error al conectar base de datos Interbase
 
Hola Foro!! Muchas gracias por toda la ayuda que he recibido de parte de todos Uds.. pero me encuentro en un problema y no se como resolverlo.
Estamos cambiando el equipo en donde está instalada una aplicación en Delphi 7 y la base de datos esta en EMS Interbase y firebird... Para evitar mayores problemas de compatibilidad lo estamos instalando en una pc con windows Xp service pack 3, con un procesador Intel Core 2 Duo 2.93 Hz y 2 Gb de Ram.
El problema que se presenta es el siguiente, dentro de la misma Pc compila bien la mayoría de las veces, pero sucede que una vez si y una no sale un error "No mapping for error code found" que por lo que pude entender es como que no encuentra la base de datos en el lugar indicado, uno lo vuelve a compilar nuevamente y anda!!.
Cuando quiero entrar por la red me sale un error que no encuentra la base de datos, igual se abre el programa, lee los datos pero no puedo escribir en la misma.
Otras veces se cuelga... y por último luego de que se cuelga, intento abrir el programa desde el Delphi y tengo que reiniciar la PC.
Ya he instalado y desinstalado todo muchas veces, me he fijado en internet y no se cúal puede ser el problema.
Desde ya agradezco su ayuda...

manuc 13-05-2010 07:50:52

Hola amparog,

El error
Cita:

"No mapping for error code found"
me suena a dbExpress (SQLConnection). Esto sucede cuando el SQLConnection recibe una excepción y no encuentra la descripción del error correspondiente. Generalmente suele ser por una mala instalación del Driver de dbExpress que estés utilizando.

Si es esto lo que te está sucediendo, es simplemente un problema más de tu lista de problemas.

¿Podrías poner la cadena de conexión a la base de datos de Firebird?

amparog 13-05-2010 18:22:02

Gracias Manuc por contestar!!!
La ruta para encontrar la base te datos del SQLconnection es
\\JORNALES\c:\personal\PERSONALAZ.GDB
Lo único que hice fue cambiar el nombre de la PC... de la misma forma está funcionando en otras PC que no se utilizan como servidor...
Si me puedes dar alguna sugerencia desde ya muy agradecida...
¿Puede ser algún problema con las dll? registré la dbexpint.dll y midas.dell en el system32 y nada..
saludos

manuc 13-05-2010 18:30:20

Hola amparog,

La cadena de conexión la tendrías que hacer utilizando protocolo TCP, tal cómo así:

JORNALES:c:/personal/PERSONALAZ.GDB
o
192.168.x.x:c:/personal/PERSONALAZ.GDB

Creo recordar que Firebird puede tener problemas con la conexión a la base de datos (la conexión se queda completamente bloqueada), si no le indicas la ruta completa en formato TCP, incluso cuando se trabaja con base de datos en local.

¿Puedes probar a cambiar la cadena de conexión?

amparog 13-05-2010 19:03:09

Pruebo y te digo
Gracias!!

amparog 13-05-2010 19:30:12

No hay caso!!! o me da el error "no mapping for error code found" o demora y me sale un cartel que no se puede ingresar al sistema.... No se que más probar... pero no se conecta en forma remota.
Gracias

Casimiro Noteví 13-05-2010 19:33:23

¿Qué componentes de conexión estás usando?

amparog 13-05-2010 20:13:38

Investigando en el foro encontré que había que abrir el puerto 3050 en el firewall, eso ya lo habíamos hecho ayer, pero como no funcionaba formateamos la PC y volvimos a instalar todo nuevamante.
Luego de que abrimos el puerto funcionó hasta que se empezó a colgar
Cambiando el formato de la dirección como lo recomendaste y abriendo ese puerto me conectó...
No quiero ser negativa pero vamos a ver si continúa...
El componente que utlizo para conectarme es el dbExpress.
Muchas gracias por la ayuda, realmente me ha servido muchísimo para aprender

amparog 13-05-2010 20:58:50

Reinicié la maquina, guardando los cambios.... y NUEVAMENTE empezó el error..
¿Alguna otra sugerencia?
Muchas Gracias

Casimiro Noteví 13-05-2010 21:39:40

Para simplificar las cosas, suponiendo que todo lo haces en windows,
las conexiones, como te han indicado antes, se hacen de dos formas posibles, mediante la IP del servidor o mediante su nombre (hay otra forma, pero mejor lo dejamos de momento).

Ejemplos:
192.168.0.100:c:\datos\basedatos.fdb
elservidor:c:\datos\basedatos.fdb

No valen unidades mapeadas ni nada de eso, la ruta absoluta en relación al servidor.

Por supuesto, firebird debe encontrar abierto el puerto 3050 porque se comunica por él, así que el firewall debe dejar ese puerto abierto.

Luego los parámetros de dbexpress, personalmente no lo he usado nunca, pero si conecta una vez, tiene que conectar todas las veces, no vale eso de una sí, una no.

Y no hay más, es así de simple, no creo que la solución sea formatear un equipo y reinstalar el sistema operativo y todos los programas :confused:.

Yo haría un programita simple, lo básico para que funcione y probaría, y así cuando ya sepa cómo va, entonces copiaría la configuración a tu programa.
Si con esa misma configuración tuvieras problemas con tu programa y con el de prueba fuese bien, quiere decir que el culpable es tu programa.

manuc 13-05-2010 21:54:13

Cita:

Luego los parámetros de dbexpress, personalmente no lo he usado nunca, pero si conecta una vez, tiene que conectar todas las veces, no vale eso de una sí, una no.
Cierto que debería ser así, pero si la ruta a la base de datos no cumple con el protocolo TCP/IP (tal como bien has indicado en tus ejemplos) el servicio de Firebird se cuelga en determinados procesos, resultando que a veces puedes conectar y consultar datos y de repente se queda la conexión "congelada".

Si quieres probar que lo que falla es el el servicio de Firebird, cuando se cuelgue reinicia el servicio de Firebird y Delphi lanzará una excepción de que se ha perdido la conexión con la base de datos.

Realmente no se si es fallo de Firebird o del SQLConnection. Pero sucede. En estos casos, la solución es construir la ruta a la base de datos completa, incluso en conexiones locales (127.0.0.1).

Un saludo.

amparog 13-05-2010 22:31:40

Muchas Gracias por todas las sugerencias, en realidad estoy probando con dos programas distintos que se conectan a la misma base de datos y no pude lograr que se conectaran nuevamente, a esta altura pienso que debe de ser el equipo ya que probamos los mismos programas en otro Pc y se logra conectar.
Formateamos la máquina porque un programa en PHP tampoco funciona, da error y pensamos que podría ser algún problema de virus.
Gracias nuevamente por todas las sugerencias
Saludos


La franja horaria es GMT +2. Ahora son las 03:57:20.

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