我下载火鸟DBX驾驶员 http://sites.google.com/site/dbxfirebird / 和我已经能够编制了“测试连接”项目,并让它运行。我就指着我的测试数据库,像这样:

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;

当我运行它,它工作正常。但是,当我把完全相同的代码在不同的项目,这是行不通的。我复制了fbclient.dll(火鸟嵌入式驱动程序的DLL,更名为fbclient),其所有相关的,和dbxdrivers.ini文件,以作为该项目的EXE在运行相同的文件夹中。我看不出有任何理由这不应该工作,但在调用。开失败:

  

项目PROJECT1.EXE引发的异常   类TDBXError与消息“未知   驱动程序:FirebirdConnection”

再次,这是在呼叫打开。分配到的DriverName工作得很好。有没有人见过这个问题吗?为什么完全相同的代码工作的测试项目,但不是一个不同的,并且是有什么办法可以解决这个问题?

有帮助吗?

解决方案

我发现这个问题。的加载类来建立数据库司机不得不在初始化DBXDynalink.pas的部分进行注册。测试项目包括DBXDynalink在其使用子句,其中矿井没有。我把在和现在的作品。

其他提示

此错误时,你不相应DBX驱动单元添加到您的应用列表时发生。尝试添加DBXFirebird到您的用途清单。

只是改变 C.DriverName:= 'FirebirdConnection'; 至 C.DriverName:= '火鸟';

和将工作!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top