Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2012
Chandra_ Chandra_ is offline
Miembro
 
Registrado: may 2008
Posts: 50
Poder: 16
Chandra_ Va por buen camino
Firebird, Interbase, dbexpress, gds32.dll y fbclient.dll: Aclarando cunfusiones

Hola. Después de estar varias horas rebuscando por los foros y encontrar bastantes post contradictorios o confusos, me he decidido a hacer una prueba para comprobar el manido asunto de la librería que hay que usar dentro de Delphi cuando se utiliza Firebird. Corregidme en lo que me haya equivocado, por favor. Allá voy:

En realidad, cuando se instala Delphi (2007 en mi caso), si no se instala después Interbase desde el CD, no se instala (obviamente) GDS32.DLL. He probado a echar a andar una miniaplicación con un DataSet (ConnectionName: IBConnection; DriverName: Interbase; VendorLib: GDS32.DLL), un DataSource y un Grid (lo del Grid es puramente neurótico) y me dice (como es lógico) que no encuentra GDS32.DLL.

Más tarde, instalo FireBird (2.5) y ahora funciona la estructura anterior (como era de esperar). ¿Por qué? Pues porque FireBird instala un reemplazo especial de la librería GDS32.DLL. Esa librería redirecciona las llamadas a Interbase a nuestra querida librería FBCLIENT.DLL. Delphi cree que está usando Interbase (porque llama a GDS32.DLL), pero en realidad está trabajando con FireBird.

Esto que a los más experimentados puede parecerles de lo más obvio, a mi me ha costado un día de estrujar al Google. Pero qué a gusto me he quedado

Supongo que Delphi XE o XE2 (no recuerdo ahora cuál era), con su driver especial para Firebird vendrá a paliar alguna incompatibilidad (que desconozco, pero intuyo) que pueda generar esta forma de trabajar (hacerle creer a Delphi que usa un driver de Interbase cuando, realmentem usa Firebird... que es un fork bastante separado ya de Interbase).

Lo que no me queda claro es lo siguiente:

Yo suelo ser bastante neurótico con las instalaciones. Llevo años trabajando con Delphi corriendo sobre XP (y ahora Windows 7) en máquinas virtuales VirtualBox (antes VMware) en Linux. Me funciona de maravilla y puedo ir hacia atrás en el tiempo fácilmente con el sistema de snapshots, instantáneas o como se le quiera llamar. Quiero decir con esto que procuro hacer una instalación escrupulosa del sistema y hago inmediatamente una foto, para poder volver a ella si es necesario. En esa instalación, que me suele acompañar varios años, nunca instalo Interbase, pues sé que voy a usar Firebird; sin embargo... si alguien ha instalado Interbase, se supone que FireBird sobreescribe GDS32.DLL para sustituirlo con su versión... ¿no?
Responder Con Cita
  #2  
Antiguo 07-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Interbase usaba y usa gds32.dll y cuando pusieron como software libre la versión 6.0 fue cuando se creó firebird 1, que no era más que interbase 6 con el nombre cambiado y poquitos cambios.
Luego interbase decidió cerrar de nuevo interbase. Y firebird siguió su rumbo independientemente. Después de la siguiente versión de firebird, que tenía numerosos cambios, incluso lo rehicieron todo usando otro lenguaje de programación, decidieron también cambiar la dll por otra más acorde al proyecto: fbclient.dll
Cuando instalas firebird verás que hay una casilla (checkbox) que si lo marcas te copia fbclient.dll como gds32.dll por si acaso usas algún programa que necesite la de interbase.

Cita:
Empezado por Chandra_ Ver Mensaje
Yo suelo ser bastante neurótico con las instalaciones. Llevo años trabajando con Delphi corriendo sobre XP (y ahora Windows 7) en máquinas virtuales VirtualBox (antes VMware) en Linux. Me funciona de maravilla y puedo ir hacia atrás en el tiempo fácilmente con el sistema de snapshots, instantáneas o como se le quiera llamar. Quiero decir con esto que procuro hacer una instalación escrupulosa del sistema y hago inmediatamente una foto, para poder volver a ella si es necesario. En esa instalación, que me suele acompañar varios años, nunca instalo Interbase, pues sé que voy a usar Firebird; sin embargo... si alguien ha instalado Interbase, se supone que FireBird sobreescribe GDS32.DLL para sustituirlo con su versión... ¿no?
Si instalas interbase y luego firebird... tendrás los dos peleándose por el puerto 3050 (salvo que configures otro puerto para firebird), y si marcas el checkbox que indiqué antes entonces realmente estarás trabajando con fbclient.dll y puede que interbase siga funcionando también.
El problema viene de las distintas cosas nuevas que se le han añadido a firebird (e interbase) y que no están contempladas en la otra. Pero básicamente, lo elemental para funcionar el sistema, son similares.
Espero no haberte confundido más
Responder Con Cita
  #3  
Antiguo 07-03-2012
Chandra_ Chandra_ is offline
Miembro
 
Registrado: may 2008
Posts: 50
Poder: 16
Chandra_ Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Cuando instalas firebird verás que hay una casilla (checkbox) que si lo marcas te copia fbclient.dll como gds32.dll por si acaso usas algún programa que necesite la de interbase.
Pues soy un despistado, no había reparado en el checkbox, jejeje... pero explica muchas cosas y le da coherencia a todo.

Cita:
El problema viene de las distintas cosas nuevas que se le han añadido a firebird (e interbase) y que no están contempladas en la otra. Pero básicamente, lo elemental para funcionar el sistema, son similares.
Sí, ya, pero entonces, el soporte que da Delphi a Firebird en las últimas versiónes del primero, ¿en qué consiste? Imagino, como comenté antes, que ahora se podrá escoger el driver para Firebird desde el inspector de objetos ¿no? Y, ya puestos a imaginar, supongo que, aunque sea así, aunque Delphi soporte bases de datos Firebird, habrá que seguir instalando Firebird aparte (como ocurre con Interbase)... aunque, ahora, sin chequear el checkbox al que hacías referencia antes... ¿o no?
Responder Con Cita
  #4  
Antiguo 07-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Que yo sepa, lo único que han hecho en delphi es "ajustar" el componente dbexpres (DBX) para un mejor funcionamiento con firebird, nada más. Y sólo viene en la versión más cara, creo que se llama 'enterprise', en las otras tampoco.
Ten en cuenta que interbase es de embarcadero, por lo tanto, no quieren hacer nada que favorezca a firebird, que es su competencia, además que interbase es 'privativa' y de pago, mientras que firebird es libre y gratis.
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
Al intentar conectame a una interbase 'Access violation en module gds32.dll' eyscom Firebird e Interbase 4 10-03-2010 10:48:35
gds32 o fbclient Leonardo Conexión con bases de datos 1 06-06-2006 11:53:46
DbExpress o interbase felixgo Conexión con bases de datos 0 27-09-2005 12:20:43
InterBase + dbExpress y CGI Slash Internet 4 27-04-2004 15:52:40
dbExpress e Interbase SKaRCHa Firebird e Interbase 6 08-05-2003 14:42:29


La franja horaria es GMT +2. Ahora son las 17:18:47.


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