我们在使用 .NET 提供程序 FbConnectionStringBuilder 类连接到远程 Firebird 服务器时遇到问题。我们可以以嵌入式或服务器模式连接到本地数据库文件,但是在建立与远程服务器的连接时,我们无法建立连接。
我们使用以下代码(服务器模式)分配 FbConnectionStringBuilder 类的属性。我省略了为嵌入模式分配属性的代码。
var cs = new FbConnectionStringBuilder
{
Database = databaseSessionInfo.PathAbsoluteToDatabase,
Charset = "UTF8",
Dialect = 3,
};
cs.DataSource = databaseSessionInfo.Hostname;
cs.Port = databaseSessionInfo.Port;
cs.ServerType = (FbServerType)databaseSessionInfo.Mode;
cs.Pooling = true;
cs.ConnectionLifeTime = 30;
if (databaseSessionInfo.UseCustomUserAccount)
{
cs.UserID = databaseSessionInfo.Username;
cs.Password = databaseSessionInfo.Password;
}
else
{
cs.UserID = Constants.DB_DefaultUsername;
cs.Password = Constants.DB_DefaultPassword;
}
很简单。我们的软件包含一个连接配置屏幕,用户可以提供不同的连接属性。使用上面的代码将这些属性分配给 FbConnectionStringBuilder 类。
连接构建器类以以下格式输出连接字符串:
初始目录=“P:\Source\database.fdb”;字符集=UTF8;方言=3;数据源=localhost;端口号=3050;服务器类型=Default;pooling=True;连接生存期=30;用户ID=用户;密码=示例
然而,本页(Firebird Connection Strings)中指出的关于 Firebird 连接字符串的文献谈到了不同的结构。我只能假设 FbConnectionStringBuilder 类构建了一个满足 Firebird 要求的 Firebird 连接字符串。
- FbConnectionStringBuilder 类是否正确地将主机名附加到连接字符串?
- Firebird 服务器正在服务器上运行。我假设不需要在客户端上安装它?
- 客户端需要安装哪些库来支持远程服务器连接?
- 我们这样做对吗?
任何建议表示赞赏。