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)
-   -   Cambiar Cliente de Conexion a un Componente TIBDatabase (https://www.clubdelphi.com/foros/showthread.php?t=75170)

Efren2006 03-08-2011 05:55:58

Cambiar Cliente de Conexion a un Componente TIBDatabase
 
Pensando ....confused:

Habra alguna manera de decirle a un componente TIBDatabase si utiliza el Archivo de Conexion cliente GDS32.dll o FIBCLiente.dll ?

(Trabajo con Firebird por Defecto, pero requiero a la vez conectarme a otra BD que esta en Interbase)

Saludos

defcon1_es 03-08-2011 08:54:40

Hola. La única forma de cambiarlo para los componentes IBX es modificando la constante IBASE_DLL de la unit IBHeader y recompilar los componentes IBX.
Código Delphi [-]
{$IFDEF MSWINDOWS}
  IBASE_DLL = 'gds32.dll'; {do not localize}
  IBXML_DLL = 'ibxml.dll'; {do not localize}
{$ENDIF}
{$IFDEF LINUX}
  IBASE_DLL = 'libgds.so.0'; {do not localize}
  IBXML_DLL = 'ibxml.so.0'; {do not localize}
{$ENDIF}
La DLL se carga en el método procedure TDynamicLibrary.LoadIBLibrary; en la unit IBIntf
Puedes modificar el método para que carge la dll que tu le indiques (y se olvide de la constante).
En cualquier caso, implica recompilar los componentes IBX

Efren2006 04-08-2011 00:36:36

Cita:

Empezado por defcon1_es (Mensaje 408294)
Hola. La única forma de cambiarlo para los componentes IBX es modificando la constante IBASE_DLL de la unit IBHeader y recompilar los componentes IBX.
Código Delphi [-]
{$IFDEF MSWINDOWS}
  IBASE_DLL = 'gds32.dll'; {do not localize}
  IBXML_DLL = 'ibxml.dll'; {do not localize}
{$ENDIF}
{$IFDEF LINUX}
  IBASE_DLL = 'libgds.so.0'; {do not localize}
  IBXML_DLL = 'ibxml.so.0'; {do not localize}
{$ENDIF}
La DLL se carga en el método procedure TDynamicLibrary.LoadIBLibrary; en la unit IBIntf
Puedes modificar el método para que carge la dll que tu le indiques (y se olvide de la constante).
En cualquier caso, implica recompilar los componentes IBX


Gracias por el Aporte.

Es Decir que por lo que tu me explicas,, Yo no podria tener un TIBDatabase trabajando con FIBCLient.DLL y otro Trabajando con GDS32.dll ... cierto ?

Trate de hacer una conexión ADO, que si me funciona para la conexión Interbase 7.1 que es la que menos uso... pero esta muy lenta la conexión ..

Alguna Sugerencia?

Saludos

defcon1_es 04-08-2011 10:43:33

Se me ocurre lo siguiente:

Clonar los fuentes de los componentes IBX, renombrar sus clases de TIBxxx a TFBxxx a fin de tener los mismos IBX pero que se conecten con la dll de FireBird.

Así tendrías los IBX que se conectan a GDS23.DLL y tus FIBX que se conectan con FBClient.dll

guillotmarc 04-08-2011 13:27:37

¿ Porqué no pruebas con dbExpress ?, están disponibles con el mismo Delphi y puedes abrir dos conexiones simultáneas conectando a librerías cliente distintas.

NOTA: El rendimiento sin duda va a ser mucho mejor que en ADO (ya que no tienes que pasar por la capa intermedia del driver ODBC).

Saludos.


La franja horaria es GMT +2. Ahora son las 04:00:25.

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