Pregunta

He descargado el controlador Firebird DBX de http://sites.google.com/site/dbxfirebird / y yo he sido capaz de compilar el proyecto "Conexión de prueba" y conseguir que se ejecute. Me indicó que mi prueba de DB, así:

procedure TMainForm.Button1Click(Sender: TObject);
var C: TSQLConnection;
begin
  C := TSQLConnection.Create(Self);
  try
    C.DriverName := 'FirebirdConnection';
    C.Params.Add('User_Name=SYSDBA');
    C.Params.Add('Password=masterkey');
    C.Params.Add('Database=C:\fbtest\test.fdb');
    C.Open;
    if C.Connected then
      ShowMessage('Connection is active')
  finally
    C.Free;
  end;
end;

Cuando corro, funciona bien. Pero cuando puse ese mismo código en un proyecto diferente, que no funciona. He copiado el fbclient.dll (DLL del controlador embebido Firebird, renombrado a fbclient), todas sus dependencias, y el archivo dbxdrivers.ini a la misma carpeta que EXE del proyecto se está ejecutando en. No puedo ver ninguna razón por la cual esto no debería funcionar, pero la llamada a .Open falla con:

  

Proyecto Project1.exe elevó excepción   TDBXError clase con el mensaje 'Unknown   conductor:. FirebirdConnection'

Una vez más, esto es en la llamada a Open. La asignación a DriverName funciona bien. Alguien ha visto este problema antes? ¿Por qué exactamente el mismo código de trabajo en el proyecto de prueba, pero no uno diferente, y hay alguna manera puedo solucionarlo?

¿Fue útil?

Solución

He encontrado el problema. Una clase de carga para configurar el controlador de base de datos tuvo que ser registrada en el inicialización de DBXDynalink.pas. El proyecto de prueba incluyó DBXDynalink en su Aplicaciones cláusula, donde la mía no. Puse eso y ahora funciona.

Otros consejos

Este error se produce generalmente cuando no se agrega la unidad de altavoz DBX correspondiente a su lista de usos. Trate de añadir DBXFirebird a su lista de usos.

Sólo el cambio C.DriverName: = 'FirebirdConnection'; a C.DriverName: = 'Firebird';

y trabajará!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top