Delphi 连接至D2010上嵌入的Firebird

Delphi 连接至D2010上嵌入的Firebird,delphi,firebird,firebird-embedded,Delphi,Firebird,Firebird Embedded,我从下载了Firebird DBX驱动程序,并且能够编译“测试连接”项目并使其运行。我将其指向我的测试数据库,如下所示: procedure TMainForm.Button1Click(Sender: TObject); var C: TSQLConnection; begin C := TSQLConnection.Create(Self); try C.DriverName := 'FirebirdConnection'; C.Params.Add('User_Na

我从下载了Firebird DBX驱动程序,并且能够编译“测试连接”项目并使其运行。我将其指向我的测试数据库,如下所示:

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(Firebird嵌入式驱动程序dll,重命名为fbclient)、其所有依赖项和dbxdrivers.ini文件复制到与项目的EXE运行所在的同一文件夹中。我看不出这有什么不起作用的原因,但是调用.Open失败,原因是:

Project 1.exe引发异常 类TDBXError,消息为“未知” 驾驶员:Firebird连接'


同样,这是一个开放的电话。给DriverName的任务做得很好。以前有人见过这个问题吗?为什么完全相同的代码在测试项目中工作,而不是不同的代码,我有什么方法可以解决它吗?

我发现了问题。设置数据库驱动程序的加载类必须在DBXDynalink.pas的初始化部分注册。测试项目在其uses子句中包含了DBXDynalink,而我的没有。我把它放进去了,现在它工作了。

当您没有将相应的DBX驱动程序单元添加到使用列表中时,通常会发生此错误。尝试将DBXFirebird添加到您的使用列表中。

只需更改即可 C.DriverName:=“火鸟连接”; 到 C.DriverName:=“火鸟”


而且会成功的

直到48小时过去我才能去PMason,我现在在尝试同样的东西时遇到了问题,如果你有一个可以运行的演示项目,我将不胜感激。@HMcG:我下面的解决方案对你有用吗?如果不是,我不确定问题出在哪里,但是你可以在这里发布自己的问题来获得帮助。参考这篇文章,说“我试着按照解决方案中的说明去做,但仍然不起作用,我得到了(这里的其他错误)。”是的,谢谢。与我使用Fikret Hasovic的Fb_embedded_SRC.pas将.dll嵌入到application.exe中不同的错误。