0

我刚刚从这个谷歌代码网站下载了Chee-Yang Chau的dbExpress Driver for Firebird

我加载了 Delphi 2010 演示项目并尝试运行它并立即得到一个无法加载 dll 的错误:

dbxfb4dl14.dll 错误

INI 文件

[Installed Drivers]
FirebirdConnection=1

[FirebirdConnection] ;DriverUnit=DBXInterBase ;DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver120.bpl ;DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=12.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b ;MetaDataPackageLoader=TDBXInterbaseMetaDataCommandFactory,DbxInterBaseDriver120.bpl ;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxInterBaseDriver,Version=12.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b GetDriverFunc=getSQLDriverFIREBIRD LibraryName=dbxfb4d14.dll VendorLib=C:\Program Files\Firebird\Firebird_1_5\bin\fbclient.dll BlobSize=-1 CommitRetain=False Database=database.gdb ErrorResourceFile= LocaleCode=0000 Password=masterkey RoleName=RoleName ServerCharSet= SQLDialect=3 Interbase TransIsolation=ReadCommited User_Name=sysdba WaitOnLocks=True Trim Char=False

德尔福代码

procedure TMainForm.Button1Click(Sender: TObject);
var C: TSQLConnection;
begin
  C := TSQLConnection.Create(Self);
  try
    C.DriverName := 'FirebirdConnection';
//    C.LibraryName := 'dbxufb40.dll';
//    C.VendorLib := 'C:\Program Files\Firebird\Firebird_1_5\bin\fbclient.dll';
//    C.GetDriverFunc := 'getSQLDriverFIREBIRD';
    C.Params.Add('User_Name=SYSDBA');
    C.Params.Add('Password=masterkey');
    C.Params.Add('Database=localhost:%ProgramFiles%\Firebird\Firebird_1_5\examples\employee.fdb');
    C.Open;
    if C.Connected then
      ShowMessage('Connection is active')
  finally
    C.Free;
  end;
end;
我注意到 ini 文件中的库名称dbxfb4d14.dll与实际的 dll 名称dbxfb4d15.dll不匹配,因此我修改了 ini 文件,使其与 dll 的名称匹配。

现在我收到一条错误消息,提示找不到 dbxfb4d15.dll

dbxfb4d15 错误

我究竟做错了什么?

4

1 回答 1

3

Delphi 2010 确实需要 d14 版本。d15 版本适用于 XE。不知道为什么 zip 中只有 d15 版本。

DLL 不在您的 DLL 搜索路径中。一旦你掌握了正确的 DLL,那么你需要确保它在路径上。

浏览了这个组件后,我不相信它非常完美。如果您负担得起,强烈推荐使用 Devart 驱动程序。

于 2011-07-30T22:34:30.957 回答