.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;サーバー タイプ=デフォルト;プーリング=True;接続有効期間=30;ユーザー ID=ユーザー;パスワード=例
ただし、このページ ( Firebird Connection Strings ) に示されているように、Firebird 接続文字列に関する文献では、異なる構造について説明されています。FbConnectionStringBuilder クラスは、Firebird の要件を満たす Firebird 接続文字列を構築するとしか思えません。
- FbConnectionStringBuilder クラスはホスト名を接続文字列に正しく追加しますか?
- サーバー上で Firebird サーバーが実行されています。クライアントにインストールする必要はないと思いますか?
- リモート サーバー接続をサポートするには、クライアントと共にどのライブラリをインストールする必要がありますか?
- 私たちはこれを正しく行っていますか?
アドバイスをいただければ幸いです。