[英]Why the compiler is unable to load the library name dbexpint.dll?
我是Delphi 10.2 Tokyo(試用版)的新用戶,在我編譯程序源代碼時出現此錯誤消息:
無法加載dbexpint.dll(錯誤代碼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錯誤:無法正確初始化驅動程序。 客戶端庫可能缺少錯誤版本或沒有正確安裝的錯誤版本,或者系統路徑中可能缺少驅動程序。
我不知道怎么了以及如何解決。 拜托,你們能幫我嗎?
dbexpint.dll
是dbExpress Interbase驅動程序,用於從Delphi 6到Delphi 2005的 (舊)Delphi版本。 它也可以用於連接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文件放在同一文件夾中。
謝謝大家的幫助。
我找到了一種解決錯誤的方法:
實際上,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安裝文件夾中。
例如:C:\\ Program Files(x86)\\ Embarcadero \\ Studio \\ 19.0 \\ bin
OBS:@DavidHeffernan是的,我已經問過這個問題,謝謝您的評論
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.