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)
-   -   No logro conectar una BD (https://www.clubdelphi.com/foros/showthread.php?t=84179)

Angel.Matilla 18-09-2013 11:52:31

No logro conectar una BD
 
Tengo W7 profesional y estoy arreglando un programa en Borland C++ Builder que tengo hecho con Firebird. El servidor está arrancado.

pero a pesar de esto, cuando lanzo el programa y trato de abrir la base de datos con este código:
Código:

tColegio->Active = false;
Colegio->Connected = false;
Colegio->Params->Clear();
Colegio->DatabaseName = AnsiString(cTablas) + "\\Colegio.gdb";
Colegio->Params->Add("user_name=sysdba");
Colegio->Params->Add("password=masterkey");
Colegio->SQLDialect = 3;
Colegio->Connected = true;
tColegio->Active = true;

me da este error:

Tengo declarada una función DisplayError para gestionar los errores y entra siempre con un código -904, y ya no sé que probar porque lo curioso es que el otro día ¡funcionaba bien! y no he cambiado ni una coma del código. Por cierto: SQL Manager funciona sin problemas y sí veo la base de datos.

He probado tanto con la versión de 32 como con la de 64 bits pero da lo mismo.

marcoszorrilla 18-09-2013 16:10:44

Intenta abrir el administrador de tareas, abre la ficha servicios, ordénalos por orden alfabético busca Interbase?? deten los dos que te aparecen, luego busca por la F deten los de Firebir y vuelve a iniciarlos (solo los de Firebird). Ya nos contarás.

Un Saludo.

donald shimoda 18-09-2013 17:24:41

Cita:

Empezado por Angel.Matilla (Mensaje 467067)
Colegio->DatabaseName = AnsiString(cTablas) + "\\Colegio.gdb";

Esto si que es extraño... Porque no usas la nomenclatura estandar ip:alias, agregas el alias al aliases.conf y listo? Incluso puedes probar con flamerobin a ver si conecta.

Saludos.

Angel.Matilla 18-09-2013 20:06:31

Cita:

Empezado por marcoszorrilla (Mensaje 467084)
Intenta abrir el administrador de tareas, abre la ficha servicios, ordénalos por orden alfabético busca Interbase?? deten los dos que te aparecen, luego busca por la F deten los de Firebir y vuelve a iniciarlos (solo los de Firebird). Ya nos contarás.

Eso es de lo primero que hice. En este momento está activo Firebird y parado Interbase.
Cita:

Empezado por donald shimoda (Mensaje 467089)
Esto si que es extraño... Porque no usas la nomenclatura estandar ip:alias, agregas el alias al aliases.conf y listo? Incluso puedes probar con flamerobin a ver si conecta.

Probaré; no obstante, está en local.

Casimiro Notevi 18-09-2013 20:25:34

Cita:

Empezado por Angel.Matilla (Mensaje 467100)
Probaré; no obstante, está en local.

Aunque esté en local debes usar la IP o localhost, como quieras.

Angel.Matilla 19-09-2013 11:34:41

Cita:

Empezado por donald shimoda (Mensaje 467089)
Esto si que es extraño... Porque no usas la nomenclatura estandar ip:alias, agregas el alias al aliases.conf y listo? Incluso puedes probar con flamerobin a ver si conecta.

A ver: Con Flamerobin, lo mismo que con SQL Manager, sí conecta, me deja crear tablas y verlas. El fichero aliases.conf no lo he usado nunca y no sé como va.

No obstante, esta aplicación tiene que correr en una red con dos o tres puestos; normalmente yo pongo el nombre de la base de datos como \\Servidor\Tablas\BBDD.gdb, ¿cómo tendría que hacer la declaración para usar ese aliases.conf?

donald shimoda 19-09-2013 15:58:27

Cita:

Empezado por Angel.Matilla (Mensaje 467125)
A ver: Con Flamerobin, lo mismo que con SQL Manager, sí conecta, me deja crear tablas y verlas. El fichero aliases.conf no lo he usado nunca y no sé como va.

No obstante, esta aplicación tiene que correr en una red con dos o tres puestos; normalmente yo pongo el nombre de la base de datos como \\Servidor\Tablas\BBDD.gdb, ¿cómo tendría que hacer la declaración para usar ese aliases.conf?

Si bien es o(oera , hace rato que no tengo lo uso asi que no estoy seguro) acceder de esa manera a un archivo de base de datos firebird, lo recomendado es hacerlo de la manera que te indique:

ip_del_servidor:alias_de_la_base

Mira el aliases.conf ubicado en la carpeta de install de firebird y te vas a dar cuenta muy sencillo como crear un alias. Intenta lo que te digo y funciona a la primera. El puerto 3050 del servidor debe estar abierto, claro.

Saludos.

Angel.Matilla 19-09-2013 18:34:06

Cita:

Empezado por donald shimoda (Mensaje 467128)
El puerto 3050 del servidor debe estar abierto, claro.

Cuando he visto lo del puerto me he acordado que no lo había abierto :(, pero he omprobado que da lo mismo. :mad:

Cita:

Empezado por donald shimoda (Mensaje 467128)
ip_del_servidor:alias_de_la_base

Mira el aliases.conf ubicado en la carpeta de install de firebird y te vas a dar cuenta muy sencillo como crear un alias. Intenta lo que te digo y funciona a la primera.

Ok. EL fichero lo tengo localizado. Ahora mismo contiene esto:
Cita:

#
# List of known database aliases
# ------------------------------
#
# Examples:
#
# dummy = c:\data\dummy.fdb
#
COLEGIO on localhost = C:\DatCol\Tablas\COLEGIO.GDB
La última línea yo no se la he puesto :confused: pero supongo, con lo que me dices, ¿debería poner en DatabaseName del TIBDatabase en vez de la vía absoluta localhost:COLEGIO? Probaré.

Angel.Matilla 19-09-2013 18:39:21

Bien. He hecho una prueba con el fichero que he puesto antes y me da este error:

La diferencia que es tras no encontrar la BD, que sí existe, en lugar de saltar el mensaje del servidor me salta el de que no existe la base de datos. Seguimos probando, pero ahora me surge otra duda. Al instalar la aplicación en una red, ¿cómo averiguo cual es la IP del servidor desde cada puesto? Y tiene que ser algo para que lo entienda yo, o sea: para tontos.

Angel.Matilla 19-09-2013 18:41:30

De lo del error del mensaje inmediato anterior no he dicho nada; me ha bastado con dejar en la línea sólo el nombre del alias y la dirección (COLEGIO = C:\DatCol\Tablas\Colegio.gdb). El resto del mensaje sigue vigente. ;)

donald shimoda 19-09-2013 19:42:10

Cita:

Empezado por Angel.Matilla (Mensaje 467142)
Cuando he visto lo del puerto me he acordado que no lo había abierto :(, pero he omprobado que da lo mismo. :mad:


Ok. EL fichero lo tengo localizado. Ahora mismo contiene esto:
La última línea yo no se la he puesto :confused: pero supongo, con lo que me dices, ¿debería poner en DatabaseName del TIBDatabase en vez de la vía absoluta localhost:COLEGIO? Probaré.

ç

en aliases.conf

COLEGIO = C:\DatCol\Tablas\COLEGIO.GDB

en tu aplicacion accedes por IP:COLEGIO

Asi de sencillo. Puedes probar en flamerobin antes si funciona.

Si es la misma pc en ip puedes usar 12.0.0.1

Casimiro Notevi 19-09-2013 20:34:09

Cita:

Empezado por donald shimoda (Mensaje 467150)
Si es la misma pc en ip puedes usar 12.0.0.1

127.0.0.1

Se perdió un 7

donald shimoda 19-09-2013 20:45:40

Cita:

Empezado por Casimiro Notevi (Mensaje 467151)
127.0.0.1

Se perdió un 7

Si, eso, eso ^\||/


La franja horaria es GMT +2. Ahora son las 03:38:28.

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