PDA

Ver la Versión Completa : Unsupported on-disk structure


mRoman
14-07-2020, 23:11:17
Hola amigos Buenas tardes.

Trabajo con: Firebird 2.0 - Win10 Prof - Delphi6 Enterprise - IBX

Compartirles algo raro q me esta pasando en estos momentos. De pronto mis aplicaciones (actualmente he revisado en 2), me sale el siguiente mensaje al momento de ingresar las credenciales de conexión a la base de datos desde Delphi:

unsupported on-disk structure for file...found 32779.17, support 13172736.136.

Esto ya me había pasado cuando migre de Fb1.5 a Fb2.0 y quise correr mi aplicación en la nueva versión y pues marcó el error antes mencionado. Pero ahora no he hecho nada de actualización al FIREBIRD...sigo con la 2.0, pero me marca este error.

Que he hecho:

1.- Copie la base a otro equipo (Eq B) para abrirla con el IBExpert...y lo logré!, por lo tanto el archivo esta bien, logré abrirla desde el IBExpert.
2.- Generé el script en ese otro equipo (B), para REGENERAR o volver a crear la base con otro nombre en el equipo que me marca el error (Eq A)...y me lo sigue marcando, cuando ejecuto de nuevo mi aplicación desde el IDE no asi desde el IBExpert, con el si puedo abrir la base sin problema.
3.- Desinstalé Fb en el equipo A, borré los directorio q se crean con la instalación y volví a instalar el Fb 2.0...y me sigue marcando el error, cuando corro la aplicación desde el IDE de Delphi.
4.- Con todo esto, estoy pensando que entonces el error puede estar en Delphi...talvez en los componentes, por lo tanto pensé q se había dañado algo en ellos, por lo tanto baje un respaldo de mi código fuente...y sigue marcando el error cuando ejecuto la aplicación desde el IDE de Delphi.

Algo sugerencia de lo q puede estar pasando??

Gracias y saludos a todos.

egostar
14-07-2020, 23:28:06
Hola

Seguramente el problema es la DLL que estás utilizando, en específico fbclient.dll, es probable que no estés utilizando la que corresponde, suele pasar en sistemas a 64 bits donde se utilizan aplicaciones de 32 bits que son las que se crean con Delphi.

Si es un sistema de 64 bits copia la dll de 32 bits en el directorio SYSWOW64 y la de 64 bits en el directorio System32.

Si esto no resuelve el problema verifica que no tengas la dll de interbase en lugar de la de Firebird.

Saludos

mRoman
14-07-2020, 23:36:45
Hola

Seguramente el problema es la DLL que estás utilizando, en específico fbclient.dll, es probable que no estés utilizando la que corresponde, suele pasar en sistemas a 64 bits donde se utilizan aplicaciones de 32 bits que son las que se crean con Delphi.

Si es un sistema de 64 bits copia la dll de 32 bits en el directorio SYSWOW64 y la de 64 bits en el directorio System32.

Si esto no resuelve el problema verifica que no tengas la dll de interbase en lugar de la de Firebird.

Saludos

Gracias egostar por contestar....

Es raro lo q esta sucediento....con el equipo tengo ya bastante tiempo trabajando con firebird 2.0...talvez alguna actualización q se le hizo al Win...porq eso sucedió la semana pasada, pero no había entrado a mis aplicaciones, hasta ahora q se ofrecio un cambio.

fbcliente.dll para 64 no lo tengo...para el directorio System32 sería el fbcliente.dll de 64 bits??

Haré lo q me comentas y les aviso si con eso quedó.

Gracias.!!

p.d. No uso Interbase...hace años

Casimiro Notevi
14-07-2020, 23:43:43
Aparte de lo que ha comentado egostar, el error indica que estás usando una versión de firebird/interbase distinta a la que se usó para crear la base de datos.
También hay algo que puede haber estropeado la base de datos y que has hecho tú mismo:
1.- Copie la base a otro equipo (Eq B) para abrirla con el IBExpert...y lo logré!, por lo tanto el archivo esta bien, logré abrirla desde el IBExpert.No puedes hacer eso.
El servicio de firebird está funcionando, debes primero de todo detener el servicio para que "libere" la base de datos.
Además, siempre que se cambia de versión de firebird o de sistema operativo, hay que hacer un backup transportable y luego restaurar ese backup con la nueva versión de firebird.
Si no está dañada la base de datos, tendrás que usar la versión correcta, que seguro que la has cambiado.

ecfisa
14-07-2020, 23:50:01
Hola.

Según The Firebird FAQ (http://www.firebirdfaq.org/faq80/), dos son los posibles motivos de recibir esa notificación de error. Podrías estar accediendo a una base de datos Interbase (caso que creo deberíamos descartar) o, estas intentando acceder a una base de datos creada con una versión superior a la que intentas acceder.

Podrías instalar Firebird 2.5.9 (https://firebirdsql.org/en/firebird-2-5/) e intentar la operación desde esa versión. Esa versión debería funcionarte sin problemas y de paso, migras a la versión 2.5 accediendo a las mejoras sobre la versión 2.0.

Saludos :)

egostar
14-07-2020, 23:59:47
Gracias egostar por contestar....

Es raro lo q esta sucediento....con el equipo tengo ya bastante tiempo trabajando con firebird 2.0...talvez alguna actualización q se le hizo al Win...porq eso sucedió la semana pasada, pero no había entrado a mis aplicaciones, hasta ahora q se ofrecio un cambio.

fbcliente.dll para 64 no lo tengo...para el directorio System32 sería el fbcliente.dll de 64 bits??

Haré lo q me comentas y les aviso si con eso quedó.

Gracias.!!

p.d. No uso Interbase...hace años

Si instalaste Firebird de 64 bits la dll de 32 bits está en el directorio WOW64 (copiala al directorio SYSWOW64) y la de 64 bits en el directorio BIN (copiala al directorio System32).

Si instalaste Firebird de 32 bits la dll está en el directorio BIN, éste la debes de copiar al directorio SYSWOW64,

Es muy probable que el problema si sea por alguna actualización de windows, pero habrá que asgurarse que las DLL estén en el lugar correcto.

Saludos

mRoman
15-07-2020, 01:05:39
Aparte de lo que ha comentado egostar, el error indica que estás usando una versión de firebird/interbase distinta a la que se usó para crear la base de datos.
También hay algo que puede haber estropeado la base de datos y que has hecho tú mismo:
No puedes hacer eso.
El servicio de firebird está funcionando, debes primero de todo detener el servicio para que "libere" la base de datos.
Además, siempre que se cambia de versión de firebird o de sistema operativo, hay que hacer un backup transportable y luego restaurar ese backup con la nueva versión de firebird.
Si no está dañada la base de datos, tendrás que usar la versión correcta, que seguro que la has cambiado.

Que tal Casimiro, efectivamente tuve que detener firebird para copiar la base al otro equipo.

Gracias por responder.

mRoman
15-07-2020, 02:00:55
Si instalaste Firebird de 64 bits la dll de 32 bits está en el directorio WOW64 (copiala al directorio SYSWOW64) y la de 64 bits en el directorio BIN (copiala al directorio System32).

Si instalaste Firebird de 32 bits la dll está en el directorio BIN, éste la debes de copiar al directorio SYSWOW64,

Es muy probable que el problema si sea por alguna actualización de windows, pero habrá que asgurarse que las DLL estén en el lugar correcto.

Saludos

Manejo FB 2.0 de 32 bits. Y lo curioso es que la única actualizacion que he realizado ha sido la de Win10...y eso porque el equipo se actualizó al apagar el equipo (el clásico msg de Win).

Bueno les platico, que este comportamiento extraño, extraño porque nada en lo que consulte en las FAQ de FB aplica para mi problema, ya que no he instalado nada de versiones de FB y mucho menos de InterBase, que el cual hace mucho no lo uso, pues apague el equipo para trasladarme a casa -del trabajo a casa- y al llegar la encendi para continuar revisando el problema y solucionarlo....corri nuevamente la aplicación desde el IDE y ya no marco problemas....

Como puede pasar esto?. Fue un lapsus??...