Ver Mensaje Individual
  #1  
Antiguo 07-03-2012
Chandra_ Chandra_ is offline
Miembro
 
Registrado: may 2008
Posts: 50
Reputación: 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