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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Question Versiones Firebird en diferentes windows y en linux con wine

Hola.

Estoy haciendo 2 programas en los que uno usa firebird instalado y el otro lo usa como embedded.

Supuestamente estos programas se usarían en windows (aunque no se sabe si será XP, Vista o 7) y posiblemente en Linux con Wine.

El desarrollo y las pruebas de los programas las hice en win XP SP3 usando Firebird 2.0.0 y todo funcionaba bien.

Pero cuando lo probé en windows 7 (la versión de evaluación que regalaron el año pasado antes de comercializarlo y que expira en Junio de 2010), no funcionaba Firebird.

Lo cambié a la versión 2.0.5 y tampoco funcionó. Luego con la versión 2.1.3 funcionó correctamente.

Como la 2.1.3 también funcionaba bien en win XP, pensé que simplemente debería cambiar a esta versión y todo resuelto.

Continué con las pruebas y probé en Linux (Ubuntu 9.10 con Wine, creo que la versión 1.0). Ahí falló Firebird 2.1.3. Como anteriormente había hecho pruebas con la versión 2.0.0 de Firebird y me había funcionado correctamente, repetí y me dí cuenta de que iba bien.

Con ello, la situación es que Firebird 2.1.3 funciona bien en Win XP y 7 no funciona en Ubuntu con Wine. Por otro lado, Firebird 2.0 que va bien con Ubuntu con Wine, no funciona con Win 7.

La pregunta es: ¿Hay alguna forma de hacer que una sola versión de Firebird funcione en todos los posibles sistemas operativos (de Win XP en adelante y en Linux con Wine)?.

Muchas gracias de antemano.

Ramón.
Responder Con Cita
  #2  
Antiguo 19-02-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola Ramon.

Bajo Windows Vista y Windows 7 no funciona el protocolo local de Firebird 1, 1.5 y 2.0. En Firebird 2.1 implementaron un nuevo protocolo local para que funcione en las nuevas versiones de Windows.

Así que para Firebird 2.0x solo tienes que utilizar el protocolo de red, es decir simplemente pon un localhost: al principio de tu cadena de conexión.

Respecto a Firebird bajo Ubuntu, ¿ haces correr Firebird bajo Wine ?. Firebird tiene una versión nativa para Linux, por lo que lo mejor que puedes hacer es instalar el Firebird nativo para Linux (ya sea 2.0x o 2.1x, tienes ambos disponibles) y ejecutar tu aplicación Delphi bajo Wine, accediendo al servidor Firebird nativo de Linux (nuevamente vas a tener que acceder con el protocolo de red y no el local, es decir con un localhost: al principio de la cadena de conexión).

El problema de Firebird 2.1 en Linux es por culpa de las Microsoft C++ Runtime. En la versión (msvcr80.dll y msvcp80.dll) ya no se pueden copiar simplemente en la carpeta de tu aplicación, sino que necesitan un archivo Microsoft.VC80.CRT.manifest de registro, y se recomienda que se instalen con el vcredist_32 o vcredist_64 de Microsoft.

http://www.firebirdsql.org/rlsnotesh...ll2-win-mslibs

En Windows, se instalarían con el instalador de Microsoft, pero en Wine supongo que será mejor hacerlo con Winetricks, por lo que veo tienen un script el Microsoft C++ Runtime 2005.

http://wiki.winehq.org/winetricks

NOTA: Suerte que Microsoft ya se ha dado cuenta de la cagada y en su último C++ han vuelto a los orígenes, de forma que las dll's del runtime ya se pueden simplemente copiar junto a tu aplicación. Esperemos que las nuevas versiones de Firebird las utilicen pronto.

Saludos.
Responder Con Cita
  #3  
Antiguo 21-02-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Smile Encontré una solución sencilla

Hola guillotmarc.

Muchísimas gracias por tu detallada respuesta.

Me aclaró la situación, aunque lamentablemente no pude aprovechar tu información directamente. No logré encontrar un lugar de descarga para msvcr80.dll y msvcp80.dll. Por cierto, comentarte que los archivos que utilizaban las versiones de Firebird que usé eran msvcr71.dll y msvcp71.dll

Por otra parte, probé a añadir, antes de la trayectoria hasta la base de datos, "localhost:" y "127.0.0.1:" pero siempre me salía un error indicando que no se había podido acceder a los datos porque la conexión había sido rechazada.

También estuve viendo lo de Winetricks, pero no llegué a probarlo porque hay una cosa que no mencioné en mi mensaje inicial y que hace que esta opción la desechara: el programa debe ser usado por usuarios que no conoceré personalmente y que, muy posiblemente, deberían tener unos conocimientos de informática de principiantes. Por ello, todo lo que se vaya a hacer debe hacerse de forma "automática".

También por ello, lo ideal es que la instalación en Linux bajo Wine sea idéntica a la que se haría en Windows. Y por ello Firebird, en Linux, se instalaría desde Wine.

Total, que me puse a probar otras opciones y encontré una solución que incluyo por si le sirve a alguien.


La versión 2.0.5 de Firebird
(descargable desde http://www.firebirdsql.org/index.php?op=files&id=engine ) funciona tanto en Linux (con Wine) como en Windows 7. Y funciona bien con Firebird instalado y con Firebird Embedded.

Por si a alguien le puede ser útil, comentar que el archivo "fbembed.dll" debe renombrarse a "gds32.dll" para que vaya bien en la versión embedded.

Usé Delphi 7, con las IBX versión 7.04.

De nuevo gracias guillotmarc.

Salu2 a to2.

Ramón
Responder Con Cita
  #4  
Antiguo 22-02-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Red face Aclaración

Hola.

Tras releer el post, veo que hay una contradicción entre lo que comento en la anterior respuesta y la pregunta inicial.

En la pregunta inicial digo que no me funcionó Firebird 2.0.5 con Windows 7 y en la anterior respuesta digo lo contrario.

No se cual es el error. Quizás me equivoqué en la pregunta inicial y realmente no probé FB 2.0.5, sino que solo lo hice con FB 2.0.0.

Bueno, lo que sí que tengo seguro es que para escribir la anterior respuesta sí que hice las pruebas con Windows 7 (en 2 ordenadores diferentes) y me funcionó bien.

Y también lo probé en Linux (Ubuntu con Wine) y también funcionó bien.

Debo aclarar que las pruebas fueron sencillas, abrir una base de datos y una tabla y moverme por los registros simplemente.

Creo que hay pocas posibilidades de error, aunque puedo haberme despistado de algo.

Ramón
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Diferentes versiones de Firebird juntas trex2000 Firebird e Interbase 3 11-03-2008 19:42:49
Ventajas de instalar Firebird en Windows y en Linux wod Firebird e Interbase 11 19-02-2007 22:26:01
Migracion Interbase Windows a Firebird Linux ASAPLTDA Firebird e Interbase 3 11-02-2005 00:14:23
Firebird en Linux y Windows IVAND Firebird e Interbase 4 30-06-2004 13:32:09
firebird windows <> linux hecjona Firebird e Interbase 2 21-11-2003 19:13:53


La franja horaria es GMT +2. Ahora son las 00:03:56.


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