Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Pasar de Firebird 2.03 a 2.5 (https://www.clubdelphi.com/foros/showthread.php?t=71665)

celades1 02-01-2011 11:10:35

Pasar de Firebird 2.03 a 2.5
 
Hola

Tengo una aplicación de Gestión contra FB 2.03 y ahora la he estado migrando en todos los clientes a FB 2.5, todo ha funcionado bien menos en un cliente que presenta una curiosidad que no entiendo.

Hay un servidor hp con 5 pcs como terminales, una vez hecha la migración en el servidor (backup con 2.03, desintalar 2.03, instalar 2.5, restore); en la carpeta windows\sistem32 aparece la nueva dll gds32.dll de 500 k.
Intento abrir la bd en el servidor con ibexpert y me dice que la dll gds32 no es la correcta, al intertar ejecutar mi aplicación me dice lo mismo.
En todos las maquinas clientes se ejecuta perfectamente mi aplicación con la nueva dll.
Pruebo en el servidor poner la antigua dll del FB 2.0 de 200 k y la aplicacion y el ibexpert funcionan en el servidor

Lo he dejado así y el cliente ha estado trabajando sin tener ningún problema

Probe de desinstalar fb.2.5 y montar fb 2.03 paar volver a desintalar e instalar, reiniciando el servidor entre cada paso y el resultado fue el mismo

Hay otros clientes con instalaciones parecidas servidor y terminales y no ha ocurrido en ninguno

Espero haberme explicado correctamente


Panta

Casimiro Noteví 02-01-2011 12:02:56

Desinstala firebird y luego mira por si acaso tienes algún gds32 que no haya eliminado, hazlo manualmente si hace falta, puede ser "restos" de alguna antigua instalación interbase, por ejemplo.
Cuando te asegures que no queda nada de firebird, interbase ni ninguna gds32.dll en ningún sitio, instala la nueva versión de firebird.

celades1 02-01-2011 13:14:48

Gracias

Ya desinstale 2.5 reinicie el servidor
instale el 2.0 reinicie
desinstale el 2.0 y borre la dll de windows\system32 reinicie
instale el 2.5 reinicie
no funcionaba como cliente
sustituyo la dll del 2.5 por la de 2.0 y funciona

No se lo que esta cogiendo de la antigua instalación del 2.0
Antes del FB 2.0 no habia habido interbase ni nada parecido (no puedo estar seguro)

Mas que un problema grave (todofunciona) es una curiosidad para conocer mas a fondo el mecanismo interno de FB

Panta

Casimiro Noteví 02-01-2011 13:34:13

Cita:

Empezado por celades1 (Mensaje 386409)
[..] no funcionaba como cliente [..]

¿Qué quiéres decir exactamente con eso?, ¿que no funciona en el mismo servidor?, supongo que siempre usas, por ejemplo: 192.168.1.100:c:\datos\labasededatos.fdb aunque sea en el propio equipo servidor.

marcoszorrilla 02-01-2011 14:06:27

Yo suelo utilizar:


\\Servidor\c:\Carpeta\CarpetaBaseDatos\BaseDatos.FDB

Un Saludo.

Casimiro Noteví 02-01-2011 14:16:23

Sí, bueno, es lo mismo, de esa manera busca la ip de 'servidor' en c:\windows\system32\drivers\etc\hosts (creo recordar)

celades1 02-01-2011 14:34:26

Me parece que os desviais del tema

Volver a leer atentamente mis dos anteriores mensages

Todo funciona correctamente en los pcs clientes con la libreria del FB2.5.
Es en el propio servidor donde solo me funciona como cliente si sustituyo la
dll del 2.5 por la antigua del 2.0

No hay mas historias, ya se como atacar las BD (me parece que se desprende de mi primer mensage)

Creo haberme explicado sino es asi perdornad pero no se que mas decir

Panta

Casimiro Noteví 02-01-2011 14:38:00

Cita:

Empezado por celades1 (Mensaje 386417)
Es en el propio servidor donde solo me funciona como cliente si sustituyo la
dll del 2.5 por la antigua del 2.0

Sí, ¿pero la conexión local en ese servidor lo haces mediante su ip?, es que debe ser así.

celades1 02-01-2011 16:01:35

Perdona Casimiro

Pero o yo estoy muy pero que muy espeso o tu lo estas un poco

Te digo que simplemente cambiando la gds32.dll de windows\system32 ya tira
el servidor como cliente (creo que eso te demuestra que no hay problema de caminos).
A parte si la intento abrir con ibexpert ( lo podria hacer como local sin la IP o con la ip) y me pasa lo mismo necesito cambiar la dll nueva por la antigua

En Cambio si ataco desde los pcs estos funcionan perfectamente con la dll
nueva

En fin que es una cosa muy rara, pero los tiros no van por ahí
Ya tengo 57 tacos y 12 entre Interbase y Firebird y creo que con una aplicación de 905 tablas 974 procedures y 1127 triggers ya tengo una ligera idea de como atacar una Base de Datos , aunque continuo siendo un ignorante en la mayoria de temas y sobre todo en formación a nivel de conocimientos teoricos.

En fin perdona mi aparente soberbia (no es tal) , pero me da la sensación de que o no nos escuchamos lo suficiente o no nos explicamos correctamente.

Un Abrazo y muchas gracias por tu interes hacia mi y hacia el resto del Foro

Panta

Delphius 02-01-2011 16:20:51

Hola celades1,
No sabría decir mucho al respecto. Yo todavía no hice el salto hacia F2.5, me he quedado estancado en 1.5 debido a compatibilidad.

Es poco probable lo que voy a comentar pero es algo a considerar: ¿Que versión de F2.5 utilizas? ¿RC? ¿Final? Existe la posibilidad (muy baja, pero en fin... posible) de que la .dll de la versión que tienes tenga algunos problemas.

Saludos,

Casimiro Noteví 02-01-2011 16:24:42

Bueno, es que a veces nos "encabezonamos" en algo y no nos damos cuenta del problema, seguramente es algo simple y se nos ha pasado.
Tú eres un poco mayor que yo, pero no mucho, no creas que soy un mozalbete, sólo se espíritu :D ¡¡¡ojalá!!! y también uso firebird desde que 'nació', y antes interbase, desde mayo de 1998. Era yo joven y tenía pelo, ahora tengo una bola de billar por cabeza :D, qué tiempos aquellos en los que usaba peine :D:D:D

En fin, vamos al lío :), no has dicho qué versión de firebird usas, classic server o superserver.
Una de ellas, creo que la superserver (tengo que confirmarlo) por fuerza, la conexión local ha de ser mediante la ip local, o sea, en el mismo servidor debes poner su ip, no vale: c:\datos\basedatos.fdb debe ser su ip local y la ruta completa: (192.168.1.100, localhost, 127.0.0.1)c:\datos\basedatos.fdb
Supongo que lo sabes, así que vamos a otra cuestión, para hacer el traspaso... siempre, siempre, ha de hacerse el backup transportable con la versión con la que se creó la bd y luego restaurar con la nueva versión, o sea:
Si tienes firebird 2.0
  1. backup transportable, gbak -b -t -v etc...
  2. desinstalar fb2.0
    1. asegurarnos que no queda nada de otras versiones
  3. instalar fb2.5
  4. restaurar ya con la nueva versión
De esa forma es imposible que fb2.5 te pida gds32.dll de la fb2.0 salvo un error en firebird, que no creo que sea el caso.
Tan sólo me queda comentar que mi experiencia en servidores windows con firebird no es muy amplia porque desde 1998 sólo uso Linux en los servidores.

A ver si dándonos más pistas podemos averiguar qué ocurre.

Saludos :)

Delphius 02-01-2011 16:38:13

Hola Casimiro,
Tengo entendido que la opción de comando -t de transportable lo que permite es que se pueda migrar a cualquier plataforma.

En mi poco conocimiento de Firebird, al menos yo entiendo que esta -t no evalúa si se puede transportar desde una versión a otra. Para ello está el ODS.

Creo que si celades1 nos indica que el problema desaparece al colocar la .dll de la versión 2.0.3 es porque no se trata de un problema de ODS ni de -t. Si fuera ese el problema el motor de Firebird protestaría y le informaría el error adecuado diciendo que hay un problema de ODS.

Si dice que el restore se realizó sin problemas, es de suponer que el problema no está allí.

Lo que si debemos hacerle recordar a celades1 es que nos informe el error exacto que le arroya. De allí podríamos ver con mayor claridad el problema. Lo que restaría hacer es buscar en la documentación de Firebird si algo de esto ya se ha comentado.

Saludos,

Casimiro Noteví 02-01-2011 16:52:55

Cita:

Empezado por firebird
-t[transportable] Creates a transportable backup (transportable between platforms and server versions)

También ajusta las diferencias entre distintas versiones de servidores.

Aunque seguramente no es el caso, pero siempre es conveniente hacerlo.

Y sí, sería conveniente que nos pusiera el mensaje de error exacto.

Delphius 02-01-2011 16:57:35

Cita:

Empezado por Casimiro Notevi (Mensaje 386427)
También ajusta las diferencias entre distintas versiones de servidores.

Vaya, recordaba mal... que todo lo que hace a control de versiones pasaba únicamente por el ODS.

:o Tengo que volver a leer la documentación.

Saludos,

Casimiro Noteví 02-01-2011 16:59:23

No se puede recordar todo de memoria, yo lo he buscado antes de contestar porque no me acordaba de ese detalle :D

celades1 02-01-2011 17:40:04

Bueno

La opcion que utilizo es la super server.

Pero el proceso lo he hecho yo creo en una treintena de clientes, utilizando los mismos pasos (empresas con un solo ordenador , con servidor y diversos pcs con s.o xp,vista,7 , servidores todos con windows ya sea server o xp etc.
En todos backup ,desinstalar,instalar y restore
no hay problema en ninguna empresa salvo en el caso explicado en todas la
dll del 2.5 funciona perfectamente

Repito en la empresa problema dede cinco pcs puedo abrir mi aplicación con la dll del 2.5 en los pcs (por tanto la BD esta perfectamente restaurada al 2.5)
Hay empresas que hace mas de un mes que hice el cambio y trabajan normalmente sin ningun problema (cada dia programo backup y restore por la noche para comprobar posibles corrupciones de las BD)
En la empresa problema tambien estan trabajando desde hace una semana con 2.5 desde los pcs sin ningun problema.
El unico problema es si quiero abrir la bd desde el propio servidor no puedo con la dll del 2.5 (el error que saltaba no lo tengo anotado, mi ingles es deplorable pero en definitva me decia que no le gustaba la dll) por eso opte por probar con la vieja.
Solo necesito abrir la bd desde el propio servidor en esta empresa al ejecutar mi programa de actualizaciones que es obligado ejecutarlo desde el propio servidor . Es mas debo deciros que actualize mi aplicación una vez realizado el cambio con la dll del 2.0 y no tuve ningun problema, todo funciono bien el actualizador ejecuto scripts etc.

Ya se que es muy raro todo lo explicado (si a mi me lo cuentan no me lo creo) pero es así.
Seguramente es una chorrada pero he preferido exponerlo al foro



Gracias a todos

Panta

Casimiro Noteví 02-01-2011 18:37:02

Ya nos contarás cuando lo resuelvas.

guillotmarc 02-01-2011 19:12:19

Hola Celades1.

A mi me da la impresión, por lo que escribes, que no te está cogiendo la DLL correcta.

Tu la pones en \System32, pero dependiendo de como esté la variable PATH, podría ser que el sistema no vaya a buscar en primer lugar la librería en esa carpeta. Por lo que es bastante posible que te esté utilizando una librería antigua, en otra carpeta.

Por eso personalmente prefiero poner la fbclient.dll en la misma carpeta de mi aplicación, de esta forma no entra en conflicto con otras instalaciones y aplicaciones bajo Firebird.

NOTA: Respecto al error en el Servidor, seria muy útil si nos puedes indicar el texto exacto del mensaje de error que aparece.

duilioisola 02-01-2011 21:25:57

Al instalar Firebird una de las cosas que pregunta es si queremos hacer una copia del gds32.dll a una carpeta, por temas de compatibilidad o algo así.

Sugiero que busques en todo el disco esta dll.

También puede ser que Windows esté reemplazando la dll con otra. Se que guarda versiones por si se borran en una carpeta especial (algo con chache, dllcache o algo asi)

fjcg02 02-01-2011 23:20:39

Hola a todos,
para quitarse la duda de qué dll está utilizando, se puede utilizar el programa filemon ( sí, de file monitoring, no el colega de Casimiro ) de sysinternals, aunque se ha discontinuado.

http://technet.microsoft.com/es-es/s...rnals/bb896642

Este programa traza todos los ficheros que utiliza un programa - además de otras cosas - , y la verdad es que da muchísima información. Sólo es cuestión de ir siguiendo el hilo hasta comprobar qué dll utiliza, ya que indica el path de cada fichero que utiliza.

Espero que sea de ayuda.

Saludos

celades1 03-01-2011 08:05:45

Gracias a Todos

Como es una empresa que no la tengo cerca y no hay problemas desde los pcs no voy a ir hasta dentro de unos dias

Entonces voy a aplicar las diferentes cosas que me habeis ido comentando

Desde luego os voy a tener informados

Agradecido

Panta

celades1 12-01-2011 09:54:52

Hola

Os explico lo que me parece no explicable

He ido con Ibexpert a Database registration info
en el apartado client library file le he puesto el path completo de fbclient
C:\Archivos de programa\Firebird\Firebird_2_5\bin\fbclient.dll
me abre la BD sin problemas

Hago lo mismo con el camino de la gds32 del FB 2.5 que tengo puesta
en la carpeta de mi aplicación
no me abre y me da el error client library is missing or invalid

sustituyo la gds32 por la vieja del FB 2.03 en la carpeta de mi aplicativo
y abre sin problemas

Copio el fbclient.dll de la carpeta bin del FB2.5 (que es igual que el gds32)
a la carpeta de mi aplicativo, borro la gds32 y renombro el fbclient por gds32
no abre y lanza el error

Recuerdo desde los terminales abro sin problemas con ibexpert contra el servidor con la gds32 del terminal que es la de 2.5

Espero que me hayais entendido (que me creais tambien)

Como todo funciona (con la gds32 del 2.03 ) en la carpeta del aplicativo
en el servidor, pues no es problema

En mi aplicativo utilizo Fibplus y tengo puesto en el componente BD que utilize gds32, supongo que si pusiera que utilizara el Fbclient no tendria
el problema

En Fin Saludos y gracias

Panta


La franja horaria es GMT +2. Ahora son las 07:34:12.

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