Ver Mensaje Individual
  #10  
Antiguo 28-10-2008
Avatar de Ana María
Ana María Ana María is offline
Miembro
 
Registrado: ago 2008
Posts: 40
Reputación: 0
Ana María Va por buen camino
Hola totote, Yo tengo BDS 2006, win Xp, dbExpress, ClientDataset y Firebird 2.1, he hecho algunas pruebas y me funciona todo muy bien.

El problema que tienes podría tratarse de que haya aplicaciones previas en algunas máquinas que podrían estar usando alguna versión distinta de dbExpress o Firebird.

Lo que yo he hecho es compilar estáticamente el proyecto, para esto he declarado en la clausula uses del proyecto "MidasLib" y "dbExpINT" ; con esto no hay necesidad de llevar dbxint30.dll ni tampoco hay necesidad de llevar y menos de registrar midasDll, y así podrán convivir pacíficamente aplicaciones que usen versiones diferentes de estas librerías.

Observa el siguiente ejemplo:

Código Delphi [-]

//Agregando librerias
program prClientDll;

uses
  Forms, MidasLib, dbExpint,
  UMain in 'UMain.pas' {Form1},.....

// Evento BeforeConnect de un TSQLConnection cuyo nombre es conexion

procedure TPruebaServidor.ConexionBeforeConnect(Sender: TObject);
var
   FileName: string;
begin
   FileName := ChangeFileExt(GetModuleName(HInstance), '.ini');//agregar //SysUtils
   if FileExists(FileName) then
      Conexion.LoadParamsFromIniFile(FileName);
end;// filename debe tener el mismo nombre que la aplicación con extensión //.ini

Con GetModuleName obtienes el nombre de la aplicación y con HInstance te aseguras de que el evento funcione así muevas el Módulo de datos a una DLL ActiveX para hacer un servidor o lo que se te antoje ( si la aplicación es multipuesto).

Ahora si se tratara de una aplicación monopuesto sería mucho mas fácil al tratarse de un Servidor Embebed yo lo conecto con tan solo esto:

Código Delphi [-]
procedure TPruebaLocal.ConexionBeforeConnect(Sender: TObject);
begin
Conexion.Params.Values['Database']  := ExtractFilePath(Application.ExeName)+'\Prueba.fdb';
end;

El resto de parámetros de la conexión los configuro en tiempo de diseño. Y solo copio las DLLs del Fierebir Embebed (que son generalmente 4 si no necesitas algo especial) mas los archivos firebird.conf y Firebird .Msg en el directorio de la aplicación renombrando FbEmbed.dll por GDS32.dll y listo.

Esto a mí me funciona bién en varias maquinas en las que he hecho las pruebas, espero te sirvan de algo.

Saludos.
Responder Con Cita