我是新用户o Delphi 10.2东京(试用版),当我编译程序源代码时出现此错误消息:
无法加载dbexpint.dll(ErrorCode 126)。它可能在系统路径中丢失。
此代码应该访问Firebird数据库,我的计算机上安装了Firebird Client 3.0。在安装文件夹中我有DLL:
以下是源代码的一部分。
unit uDataModule;
interface
uses
SysUtils, Classes, DBXCommon, DB, DBClient, SimpleDS, SqlExpr, FMTBcd,
ADODB, Data.DBXInterBase, Data.DBXOracle;
...
procedure TDM.DataModuleCreate(Sender: TObject);
var
strPath: String;
begin
//Conex?o Firebird SPIRIDON
SQLSpiridonConnection.Params.Clear;
SQLSpiridonConnection.Params.Values['DatabaseServer'] := 'Interbase';
SQLSpiridonConnection.Params.Values['Database'] := 'XXXXXXXXXX:f:\dados\database\XXXXXXXXXXXX.FDB';
SQLSpiridonConnection.Params.Values['SQLDialect'] := '3';
SQLSpiridonConnection.Params.Values['DriverName'] := 'Interbase';
SQLSpiridonConnection.Params.Values['VendorLib'] := 'gds32.dll';
SQLSpiridonConnection.Params.Values['User_Name'] := 'XXXXXXXX';
SQLSpiridonConnection.Params.Values['Password'] := 'XXXXXXXX';
SQLSpiridonConnection.Params.Values['LibraryName'] := 'dbexpint.dll';
SQLSpiridonConnection.Params.Values['GetDriverFunc'] :=
'getSQLDriverINTERBASE';
SQLSpiridonConnection.Connected:= True;
我尝试下载DLL并将其放入system32和wow64文件夹中,但效果不佳。
我尝试将引用从库名称行更改为dbxint.dll,但出现以下错误:
DBX错误:无法正确初始化驱动程序。客户端库可能丢失,安装不正确,版本错误,或者系统路径中可能缺少驱动程序。
我不知道什么是错的以及我如何解决它。拜托,你们能帮助我吗?
答案 0 :(得分:2)
dbexpint.dll
是来自Delphi 6 to Delphi 2005的(旧)Delphi版本的dbExpress Interbase驱动程序。它也可用于连接Firebird数据库,而较新的Delphi版本则为每个数据库使用单独的驱动程序。
此驱动程序 与Delphi版本2006及更高版本兼容。相反,Delphi 10.2现在使用dbxint.dll
用于Interbase,dbxfb.dll
用于Firebird。
dbxfb.dll
的参数类似于dbexpint.dll
的参数。
如果您创建新表单,请在其上放置TSQLConnection并选择FBConnection
作为ConnectionName
属性的值,然后将自动分配Driver
属性使用所需的值Firebird
,Params
属性也将填充适当的值:
object SQLConnection1: TSQLConnection
ConnectionName = 'FBConnection'
DriverName = 'Firebird'
Params.Strings = (
'DriverName=Firebird'
'Database=database.fdb'
'RoleName=RoleName'
'User_Name=sysdba'
'Password=masterkey'
'ServerCharSet='
'SQLDialect=3'
'ErrorResourceFile='
'LocaleCode=0000'
'BlobSize=-1'
'CommitRetain=False'
'WaitOnLocks=True'
'IsolationLevel=ReadCommitted'
'Trim Char=False')
Left = 312
Top = 172
end
注意:如评论中 @DavidHeffernan 所述,请勿将DLL放入系统目录。最好将它放在与exe文件相同的文件夹中。
答案 1 :(得分:0)
谢谢大家的帮助。
我找到了解决错误的方法:
实际上dbexpint.dll驱动程序仅适用于较旧版本的Delphi。当前驱动程序是dbxfb.dll,用于连接Firebird数据库。
首先,我更改了以下代码行。
SQLSpiridonConnection.Params.Clear;
SQLSpiridonConnection.Params.Values['DatabaseServer'] := 'Firebird';
SQLSpiridonConnection.Params.Values['Database'] := 'xxxxxxxxxxxxx:f:\dados\database\xxxxxxxxxx.FDB';
SQLSpiridonConnection.Params.Values['SQLDialect'] := '3';
SQLSpiridonConnection.Params.Values['DriverName'] := 'Firebird';
SQLSpiridonConnection.Params.Values['VendorLib'] := 'fbclient.dll';
SQLSpiridonConnection.Params.Values['User_Name'] := 'SYSDBA';
SQLSpiridonConnection.Params.Values['Password'] := 'xxxxxxx';
SQLSpiridonConnection.Params.Values['LibraryName'] := 'dbxfb.dll';
SQLSpiridonConnection.Params.Values['GetDriverFunc'] := 'getSQLDriverINTERBASE';
SQLSpiridonConnection.Connected:= True;
之后我将这些dll插入到Firebird安装文件夹中。
其他dll在delphi安装文件夹中。
Ex:C:\ Program Files(x86)\ Embarcadero \ Studio \ 19.0 \ bin
OBS:@DavidHeffernan是的我已经问了这个问题,谢谢你的评论