PDA

Ver la Versión Completa : Firebird, interbase y mis problemas con ambos


Angel.Matilla
20-11-2013, 17:40:27
He tenido que reinstalar Builder e interbase y ahora, cuando lanzo una aplicación que usa tablas firebird me responde siempre con un error:
connection rejected by remote interface
y ya no sé que hacer. Y el caso es que con SQL Manager sí puedo abrir la base de datos y verla, y no he cambiado nada en el código.

ecfisa
20-11-2013, 18:17:29
Hola Angel.Matilla.

Si la aplicación funcionaba antes de la instalación de Interbase supongo que una posible causa es que la misma haya reemplazado el Client Library File.

En Firebird debe ser:

[ruta_a_firebird]\bin\fbclient.dll

Lamento no poder decirte específicamente donde cambiar el dato por que no uso SQL Mananger, pero debería estar en propiedades de la base de datos.

Saludos :)

Angel.Matilla
20-11-2013, 18:33:07
Muchas gracias por la ayuda. Al final ha sido un tontería y un olvido por mi parte: Se me olvidó actualizar el fichero aliases.conf de Firebird. :(

Neftali [Germán.Estévez]
21-11-2013, 10:27:44
¿Y qué cambio o actualización has hecho?
Más que nada para saber cómo arreglar el problema... :o

Angel.Matilla
21-11-2013, 10:42:29
¿Y qué cambio o actualización has hecho?
Más que nada para saber cómo arreglar el problema... :o
Tuve una problema con la máquina y he tenido que reinstalar BCB 6 completo, con IB incluído.

Angel.Matilla
22-11-2013, 13:21:35
Hola Angel.Matilla.

Si la aplicación funcionaba antes de la instalación de Interbase supongo que una posible causa es que la misma haya reemplazado el Client Library File.

En Firebird debe ser:

[ruta_a_firebird]\bin\fbclient.dll
Lamento no poder decirte específicamente donde cambiar el dato por que no uso SQL Mananger, pero debería estar en propiedades de la base de datos.

Saludos :)
Efectivamente, esa es la ruta: C:\Program Files (x86)\Firebird\Firebird_2_5\bin; pero ¿dónde encuentro la entrda que me citas Cliente Library File? ¿En el registro de windows?

ecfisa
22-11-2013, 15:45:40
Hola Angel.Matilla.

Como te dije anteriormente, no uso SQL Mananger, pero revisando en la documentación del producto encontré esto: Setting connection parameters (http://www.sqlmanager.net/en/products/ibfb/manager/documentation/hs4110).

Saludos :)

Angel.Matilla
22-11-2013, 17:36:59
Como te dije anteriormente, no uso SQL Mananger, pero revisando en la documentación del producto encontré esto: Setting connection parameters (http://www.sqlmanager.net/en/products/ibfb/manager/documentation/hs4110).
Gracias por contestar. Desgraciadamente es al revés: Con SQL Manager me conecto sin problemas pero desde la aplicación que estoy desarrollando es donde me da el mensaje que decía al principio. Y, por si acaso, he probado con Firebird de 32 y 64 bits ya que estoy usando Windows 7 Profesional.

ecfisa
22-11-2013, 18:57:59
Gracias por contestar. Desgraciadamente es al revés: Con SQL Manager me conecto sin problemas pero desde la aplicación que estoy desarrollando es donde me da el mensaje que decía al principio. Y, por si acaso, he probado con Firebird de 32 y 64 bits ya que estoy usando Windows 7 Profesional.
Hola.

Entonces sería bueno que nos dijeras mediante que componente estas realizando la conexión y el código (si lo hay) donde realizas la misma.

Saludos :)

Angel.Matilla
23-11-2013, 11:07:55
Entonces sería bueno que nos dijeras mediante que componente estas realizando la conexión y el código (si lo hay) donde realizas la misma.
Tienes razón. La conexión la estoy haciendo desde un programa escrito en C++ Builder 6 y el código es este:
1. Para crear la base de datos:
try
{
tColegio->Active = false;
Colegio->Connected = false;
Colegio->DatabaseName = "localhost:colegio";
Colegio->Params->Clear();
Colegio->Params->Add("USER 'sysdba'");
Colegio->Params->Add("PASSWORD 'masterkey'");
Colegio->Params->Add("PAGE_SIZE 4096");
Colegio->SQLDialect = 3;
Colegio->CreateDatabase();
}
catch(...)
{
return false;
}2. Para conectarme a la misma:
tColegio->Active = false;
Colegio->Connected = false;
Colegio->DatabaseName = "localhost:colegio";
Colegio->Params->Clear();
Colegio->Params->Add("user_name=sysdba");
Colegio->Params->Add("password=masterkey");
Colegio->SQLDialect = 3;
Colegio->Connected = true;
tColegio->Active = true;tColegio es un TIBTransaction, Colegio es un TIBDatabase y DatabaseName está declarado en el fichero aliases.conf de Firebird.

Angel.Matilla
23-11-2013, 12:30:10
He estado dando vueltas por la red, tratando de encontrar soluciones y me ha surgido una duda: ¿Podría ser que el error viniera porque se han modificado los parámetros de windows? Me refiero al grupo de instrucciones que se muestran al dar la instrucción SET en el panel de comandos. Esto es lo que tengo:
C:\>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Administrador\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=TIENDA
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Administrador
LOCALAPPDATA=C:\Users\Administrador\AppData\Local
LOGONSERVER=\\TIENDA
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\PROGRA~2\Borland\CBUILD~1\Bin;C:\PROGRA~2\Borland\CBUILD~1\Projects\Bpl;
C:\Users\Public\Documents\RAD Studio\10.0\BPL
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=3a09
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\ADMINI~1\AppData\Local\Temp
TMP=C:\Users\ADMINI~1\AppData\Local\Temp
USERDOMAIN=TIENDA
USERNAME=Administrador
USERPROFILE=C:\Users\Administrador
windir=C:\Windows
windows_tracing_flags=3
windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log

ecfisa
23-11-2013, 17:38:59
Hola.

Del archivo Firebird.log podes extraer mas información de por qué el servidor rechaza la conexión. Además, revisaría estos puntos:

Si la ruta a la base de datos es correcta.
Si el nombre de usuario y la contraseña son correctas. (Si no usabas masterkey, la nueva instalación la fijó a ese valor).
Los permisos sobre la carpeta donde está la base de datos y sobre ella.
Si está en red, que el firewall del servidor tenga habilitado el puerto 3050.
Si está sobre Win 64, que el archivo GDS32.DLL exista en C:\Windows\SysWOW64.
Si algún programa de seguridad está bloqueando el proceso.


Saludos. :)

Angel.Matilla
25-11-2013, 10:32:15
Bueno, pues no sé que demonios he hecho. El sábado pasado, harto de dar vueltas y tras buscar por la red, decidí empezar de cero. Desinstalé Builder, Interbase y Firebird; borré todas las carpetas del sistema que hacían referencia a ellos y todas las entradas del registro (ayudado por CCleaner) y volví a instalr todo desde el principio... ¡Y ha salido andando!

Muchas gracias por los consejos y la ayuda. Sois fantásticos. ^\||/