Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Error al conectar BD Firebird

Tengo una base de datos en Firebird creada al ejecutarse una aplicación por primera vez y ahor no logro conectarme a ella aunque creo que no he modificado nada. Si trato de abrirla con SQL Manager Lite me da esta información:
Cita:
Wrong or obsolete version
.
Unsupported on-disk structure for file C:\DatCol\Tablas\COLEGIO.GDB; found 32779, support 10.

SQL Code: -820
IB Error Number: 335544379
y al tratar de conectarme con la aplicación me dice lo mismo pero en vez support 10 pone support 15.

Estoy usando Firebird 2.5.2.26540 y tuve instalado Firebird 2.5.3.26778 pero da lo mismo. He probado a arreglarla con la herramienta gfix de Firebird pero o no entiendo como funciona o no hace nada.
Responder Con Cita
  #2  
Antiguo 09-10-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Puede ser que la base se ha corrompido.

¿La has copiado mientras alguna aplicación estaba conectada?
¿Estás seguro de que es una base de datos GDB/FDB y no un backup GBK/FBK al que hayas cambiado el nombre?
¿Tienes una copia anterior que si funcione para comparar tamaño?
¿Cómo se crea la primera vez? Es una copia de una "Base Modelo" o la creas mediante SQL.
Responder Con Cita
  #3  
Antiguo 09-10-2014
jgutti jgutti is offline
Miembro
 
Registrado: may 2003
Posts: 189
Poder: 21
jgutti Va por buen camino
lo mas probable es que en nuevo firebird que instalastes soporte solo .fdb

- para solucionar el problema volver a instalar Firebird 2.5.2.26540 o convertir colegio.gdb a colegio.fdb
- para convertir .gdb a .fdb
1.- Generar backup de la base actual (colegio.gdb)
2.- ejecutar gbak -c colegio.GBK nuevocolegio.fdb -user SYSDBA -password masterkey
3.- renombrar nuevocolegio.fdb a colegio.fdb


saludos
Responder Con Cita
  #4  
Antiguo 09-10-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por duilioisola Ver Mensaje
Puede ser que la base se ha corrompido.
¿La has copiado mientras alguna aplicación estaba conectada?
¿Estás seguro de que es una base de datos GDB/FDB y no un backup GBK/FBK al que hayas cambiado el nombre?
¿Tienes una copia anterior que si funcione para comparar tamaño?
¿Cómo se crea la primera vez? Es una copia de una "Base Modelo" o la creas mediante SQL.
Sí, seguro que es eso.



Cita:
Empezado por jgutti Ver Mensaje
lo mas probable es que en nuevo firebird que instalastes soporte solo .fdb
- para solucionar el problema volver a instalar Firebird 2.5.2.26540 o convertir colegio.gdb a colegio.fdb
- para convertir .gdb a .fdb
1.- Generar backup de la base actual (colegio.gdb)
2.- ejecutar gbak -c colegio.GBK nuevocolegio.fdb -user SYSDBA -password masterkey
3.- renombrar nuevocolegio.fdb a colegio.fdb
saludos
No, no es eso. Puedes poner la extensión que quieras, en cualquier momento (que no haya conexiones abiertas), a cualquier versión.
Responder Con Cita
  #5  
Antiguo 09-10-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias a los tres por las respuestas.
Cita:
Empezado por duilioisola Ver Mensaje
Puede ser que la base se ha corrompido.

¿La has copiado mientras alguna aplicación estaba conectada?
¿Estás seguro de que es una base de datos GDB/FDB y no un backup GBK/FBK al que hayas cambiado el nombre?
¿Tienes una copia anterior que si funcione para comparar tamaño?
¿Cómo se crea la primera vez? Es una copia de una "Base Modelo" o la creas mediante SQL.
Vamos por partes.
1. La copia se hizo estando cerrado todas las aplicaciones, excepto el escritorio remoto (TeamViewer) con la que me la traje.
2. Sí, estoy seguro que no es un backup.
3. No, por desgarcia no tengo una copia anterior.
4. La primera vez se crea mediante comandos SQL, por ejemplo:
Código SQL [-]
CREATE TABLE Alumnos (Alumno CHAR(30), Registro INTEGER, Referencia CHAR(5), Recibo CHAR(7), Dni CHAR(9), Padre INTEGER,
Domicilia INTEGER, Formacion INTEGER, Curso INTEGER, Observaciones BLOB(0, 1), Exento INTEGER, Seccion CHAR(1), Lectivo INTEGER,
PRIMARY KEY (Alumno, Registro, Referencia, Recibo))
El problema es que la aplicación original, que tengo que adaptar al nuevo formato de emisión de recibos de acuerdo al estándar SEPA, está funcionando sin error alguno.
Cita:
Empezado por jgutti Ver Mensaje
para solucionar el problema volver a instalar Firebird 2.5.2.26540 o convertir colegio.gdb a colegio.fdb
La versión de Firebird en el equipo en el que está trabajando es la misma que tengo yo ahora instalada en mi máquina. Sí es cierto que dispongo de un backup (gbk); probaré a restaurar la base de datos. Me hace falta únciamente para probar la adaptación de las bases de datos. Ya os diré como va la cosa.

Última edición por Angel.Matilla fecha: 09-10-2014 a las 17:58:20.
Responder Con Cita
  #6  
Antiguo 09-10-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
He probado restaurando la base de datos desde el backup con gbak y me da el mismo mensaje de error. La única diferencia es que ahora dice esto:
Cita:
Wrong or obsolete version
.
Unsupported on-disk structure for file C:\DatCol\Tablas\Colegio_Ant\COLEGIO2.GDB; found 32779, support 15.

SQL Code: -820
IB Error Number: 335544379
Responder Con Cita
  #7  
Antiguo 09-10-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
La forma de transportar una base de datos de un ordenador a otro es haciendo backup/restore.
Si has copiado la base de datos, es muy probable que se haya corrompido.

¿Cuál es la línea de comando que utilizas para hacer le backup?
¿Cuál es la línea de comando que utilizas para hacer le restore?

Si alguna vez has cambiado de versión de Firebird, asegúrate que el archivo GBAK.EXE es el que corresponde a la versión.
Me ha sucedido que un compañero, para no tener que escribir toda la ruta al archivo, lo copio al lado de la base de datos.
Tiempo después se actualizó la versión pero nadie se acordó de copiar el GBAK de la nueva versión al lado de la base de datos y los backups empezaron a dar errores.

Código:
C:\Program Files\Firebird\Firebird_2_5\bin>gbak.exe -z
gbak:gbak version WI-V2.5.3.26778 Firebird 2.5
gbak: ERROR:requires both input and output filenames
gbak:Exiting before completion due to errors
Responder Con Cita
  #8  
Antiguo 10-10-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Una cosa que se me olvidó comentar: La aplicación está hecha en C++ Builder 5.
Cita:
Empezado por duilioisola Ver Mensaje
¿Cuál es la línea de comando que utilizas para hacer le backup?
¿Cuál es la línea de comando que utilizas para hacer le restore?
El backup lo hago directamente con un TIBBackupService y este código:
Código:
Backup->LoginPrompt = false;
Backup->Params->Add("user_name=sysdba");
Backup->Params->Add("password=masterkey");
Backup->Verbose = true;
Backup->Active  = true;
try
{
     Backup->DatabaseName = fColegio->Colegio->DatabaseName;
     Backup->BackupFile->Add(fColegio->DirDlg->SelectedFolder + "\\" + Now().FormatString("yyyymmdhhnnss") + ".gbk");
     tColegio->Active = true;
     tColegio->Commit();
     Backup->ServiceStart();

     while (!Backup->Eof)
     {
          cCadena = Backup->GetNextLine();
          Barra->Caption = "Backup » " + Trim(cCadena.SubString(cCadena.Pos(":") + 1, cCadena.Length()));
          slBackup->Add(Barra->Caption);
     }
}
__finally
{
     Backup->Active = false;
}
El restore lo estaba haciendo con gbak y con esta orden:
Cita:
gbak -r o -v -user SYSDBA -pass word masterkey c:\datcol\tablas\colegio_ant\20130911092620.gbk c:\datcol\tablas\colegio_ant\colegio2.gdb
En teoría sí restaura la base de datos (aparece ese ficherop colegio2.gdb), pero sigue dando el mismo mensaje de error
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Me acabo de fijar en que una era la 2.5.2 y la otra 2.5.3
¿Cómo averiguas cual es la versión de Firebird?
Responder Con Cita
  #9  
Antiguo 09-10-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Me acabo de fijar en que una era la 2.5.2 y la otra 2.5.3

Deberías de probar a hacerlo "normalmente". Supongo que el backup que tienes es de la 2.5.2, y supongo que no existe el backup con el parámetro "transportable", así que:

Con firebird 2.5.2 restauras el backup. Debería estar bien.
Luego haces un backup transportable, con el parámetro -t

gbak -b -t -v -user zzzzzzz -password yyyyyy basedatos.fdb basedatos.fbk

Luego desisntalas esa versión e instalas la 2.5.3

Ahora la restauras normalmente:

gbak -r -p 8192 -v -user zzzzzzz -password yyyyyy basedatos.fbk basedatos.fdb


EDITO: Ahora veo el mensaje de [duilioisola]. Realmente es eso, una mezcla de versiones y haber hecho un backup no transportable.
Responder Con Cita
  #10  
Antiguo 09-10-2014
Avatar de Young
Young Young is offline
Miembro
 
Registrado: abr 2006
Ubicación: San Felipe, Chile
Posts: 86
Poder: 19
Young Va por buen camino
En las ultimas versiones de Delphi si uno no pone atención se instala Interbase XE, y usa aun el mismo nombre de dll (GDS32.DLL), cuando se instala firebird posteriormente este no puede reescribir esa dll y puede causar problemas (...y me los causó).

Saludos.
Responder Con Cita
  #11  
Antiguo 10-10-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
gbak -r -p 8192 -v -user zzzzzzz -password yyyyyy basedatos.fbk basedatos.fdb
He probado esta línea. Se restaura la base de datos; he sacado esta información al restaurar:
Cita:
gbak: opened file c:\datcol\tablas\colegio_ant\20130911092620.gbk
gbak: backup file is compressed
gbak:created database c:\datcol\tablas\colegio_ant\colegio2.gdb, page_size 8192 bytes
gbak:started transaction
gbak:restoring domain RDB$1
gbak:restoring domain RDB$2
[...]
gbak: activating and creating deferred index ALUMNOS
gbak: activating and creating deferred index REFREC
gbak: committing metadata
gbak:finishing, closing, and going home
Pero sigue sin poderse abrir.
Responder Con Cita
  #12  
Antiguo 10-10-2014
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
gbak -b -t -v -user zzzzzzz -password yyyyyy basedatos.fdb basedatos.fbk
gbak -r -p 8192 -v -user zzzzzzz -password yyyyyy basedatos.fbk basedatos.fdb
Efectivamente las versiones de Firebird donde está corriendo la aplicación y la mía son distintas; allí está la 2.5.1 y aquí la 2.5.2. He hecho esto que sugería Casimiro, pero la base de datos restaurada da el mismo error y me estoy volviendo loco.
Responder Con Cita
  #13  
Antiguo 10-10-2014
jgutti jgutti is offline
Miembro
 
Registrado: may 2003
Posts: 189
Poder: 21
jgutti Va por buen camino
Angel si continuas con el error realiza los pasos siguientes (Tuve este problemas al cambiar la base de servidor en mas de una vez y solucione el problema con las indicaciones sgtes):

lo mas probable es que en nuevo firebird que instalastes soporte solo .fdb

- para solucionar el problema volver a instalar Firebird 2.5.2.26540 o convertir colegio.gdb a colegio.fdb
- para convertir .gdb a .fdb
1.- Generar backup de la base actual (colegio.gdb)
2.- ejecutar gbak -c colegio.GBK nuevocolegio.fdb -user SYSDBA -password masterkey
3.- renombrar nuevocolegio.fdb a colegio.fdb
Responder Con Cita
  #14  
Antiguo 10-10-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por jgutti Ver Mensaje
lo mas probable es que en nuevo firebird que instalastes soporte solo .fdb
Toma una base de datos que tengas, por ejemplo: pruebas.fdb y ahora, sin que haya ninguna conexión abierta a ella, la renombras a: pruebas.zzz
Intenta conectar a pruebas.zzz


Pregunto: ¿acaso firebird ha incluido esa característica a la última versión?, es que no lo he leido en ningún sitio, de momento.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al conectar a una IP fija con firebird tulio Internet 3 24-04-2010 04:50:53
Ayuda con error al conectar a Firebird Mauro® Conexión con bases de datos 9 20-02-2008 20:09:42
Error al intentar conectar Firebird jfrank Firebird e Interbase 3 08-06-2007 19:48:05
Error al conectar Firebird+MDO brakaman Conexión con bases de datos 2 08-04-2007 22:49:10
Error al conectar con un BD de Firebird 1.5 con un BDPConnection tarus .NET 2 06-06-2005 09:09:38


La franja horaria es GMT +2. Ahora son las 09:13:43.


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
Copyright 1996-2007 Club Delphi