Firebird .NET 提供商和嵌入式服务器 3
Firebird .NET provider and embedded server 3
我正在尝试使用 .NET Firebird Provider 连接到嵌入式 FB 3.0.1 服务器。
据我所知,(也写成 here (page 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。相反,它们的位置在连接字符串中定义。
从 here 下载完整的服务器 zip。然后将这三个文件解压到你的项目中。使用类似于下面的结构。
- my_project\firebird_server\fbclient.dll
- my_project\firebird_server\ib_util.dll
- my_project\firebird_server\plugins\engine12.dll //是的,需要将它放在“plugins”子目录中,否则 firebird 服务器会抛出错误。
然后设置连接字符串:
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;
我正在尝试使用 .NET Firebird Provider 连接到嵌入式 FB 3.0.1 服务器。
据我所知,(也写成 here (page 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。相反,它们的位置在连接字符串中定义。
从 here 下载完整的服务器 zip。然后将这三个文件解压到你的项目中。使用类似于下面的结构。
- my_project\firebird_server\fbclient.dll
- my_project\firebird_server\ib_util.dll
- my_project\firebird_server\plugins\engine12.dll //是的,需要将它放在“plugins”子目录中,否则 firebird 服务器会抛出错误。
然后设置连接字符串:
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;