[英]Firebird .NET provider and embedded server 3
我正在嘗試使用 .NET Firebird Provider 連接到嵌入式 FB 3.0.1 服務器。
據我所知,(也寫在這里(第 6 頁) ),不再有 fbclient.dll\\fbembed.dll,而是一個用於遠程和嵌入式訪問的客戶端 fbclient.dll。
但是當我調用 FBConnection.Open() 時,我得到一個 System.DllNotFoundException:
Unable to load DLL 'fbembed':
Impossible to find the specified module (Exception from HRESULT: 0x8007007E).
有什么想法嗎?
查看提供程序代碼,默認客戶端庫是 fbembed(可能是為了兼容性):
internal const string DefaultValueClientLibrary = "fbembed";
現在,將新值傳遞給 ConnectionString 即可解決問題:
var connectionString = new FbConnectionStringBuilder
{
Database = dbPath,
ServerType = FbServerType.Embedded,
UserID = "SYSDBA",
Password = "masterkey",
ClientLibrary = "fbclient.dll"
}.ToString();
這花了一段時間才弄清楚。 但我讓它工作......
對於嵌入式客戶端:
運行 NuGet 命令:Install-Package FirebirdSql.Data.FirebirdClient
對於嵌入式服務器:
關鍵點:dll 不會作為項目引用添加到 Visual Studio。 相反,它們的位置在連接字符串中定義。
從這里下載完整的服務器 zip。 然后將這三個文件解壓縮到您的項目中。 使用類似於下面的結構。
然后設置連接字符串:
Database=c:\sample_firebird_database.FDB;
User=my_username;
Password=my_password;
ServerType=1; // 1 = embedded server
Charset=UTF8;
ClientLibrary=c:\my_project\firebird_server\fbclient.dll;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.