Microsoft Visual C#2010でFirebird組み込みサーバーを使用しようとしていました。これまでに行ったことは次のとおりです。
ダウンロードFirebird.Netデータプロバイダー( Firebird Client v2.5.2 )。
ダウンロードFirebird組み込みサーバー( Firebird組み込みサーバーv2.5. )。
FirebirdSql.Data.FirebirdClient.dllへの参照をプロジェクトに追加しました。
抽出およびコピーfbembed.dllファイルをアプリケーションのディレクトリに。
FDBファイルを追加しました"TEST.FDB"をアプリケーションのディレクトリに追加しました。
"sing FirebirdSql.Data.FirebirdClient;"ステートメントを追加しました。
これまでのところ良い(私は思う)...
次のコードを使用してFDBファイルに接続しようとすると:
FbConnection con = new FbConnection("User=SYSDBA;" + "Password=masterkey;" + "Database=TEST.FDB;" + "DataSource=127.0.0.1;" + "Port=3050;" + "Dialect=3;" + "Charset=UTF8;");
try {
con.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
コードがDBファイルに正しく接続されていないことを意味するメッセージボックスが常に表示されます。私は何か間違ったことをしていますか?私はまだC#に慣れていないので、これを行う方法や修正する方法がわかりません。誰かがこれを手伝ってくれることを願っています。
ありがとう:)
編集:これが私が例外で得るものです:
FirebirdSql.Data.FirebirdClient.FbException(0x80004005):ホスト「127.0.0.1」へのネットワーク要求を完了できません。 --->ホスト「127.0.0.1」へのネットワーク要求を完了できません。 FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()、FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create()、FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut()、FirebirdSql.Data.FirebirdClient.FbConnection.Open()、fbTestApp .Form1.button1_Click(Object sender、EventArgs e)in C:\ Documents and Settings\ermac\My Documents\Visual Studio 2010\Projects\fbTestApp\fbTestApp\Form1.cs:line 25
私はついに6時間の作業の後に解決策を見つけました:)
グーグルの答えのほとんどは間違っているか、とても古いです。それらのすべては私が私のプロジェクトにfbembed.dllファイルを含める必要があるだけだと言います。
私が行ったいくつかの調査の後。 firebird.msg、firebird.conf、icudt30.dll、icuin30.dll、icuuc30.dll、ib_util.dllを私のプロジェクトファイルと出力フォルダ ..
重要なお知らせ:コンパクトな.Netデータプロバイダーは絶対に使用しないでください。通常およびスーパーファイアバードサーバー専用に作成されたためです。組み込みサーバーでは機能しません。
Firebird 2.5が埋め込まれているので、このすべてのファイルをアプリケーションディレクトリにコピーします。
aliases.conf (optional)
fbembed.dll
firebird.conf
firebird.msg
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll
Microsoft.VC80.CRT.manifest : -- Not sure if this 3 files are necessary
msvcp80.dll : -- but i copy them :)
msvcr80.dll : -- see http://www.firebirdnews.org/?p=2248
intl\fbintl.conf : Without those files you can't use
intl\fbintl.dll : all charset and collations
udf\* : if you want to use pre-build UDF
接続文字列で、サーバーがserverType = 1で埋め込まれていることを指定します。
User=SYSDBA;Password=masterkey;Database=E:\TEST.FDB;Dialect=3;Charset=UTF8;ServerType=1;
IDPLicense.txtとIPLicense.txtも忘れてしまいましたが、ライセンス発行用のアプリケーションと一緒に配布する必要があると思いますか?
FirebirdDLLをFirebirdというプロジェクトのディレクトリに配置しました。ファイルをコピーするためのビルド後イベントを追加しました。
copy $(ProjectDir)Firebird\*.dll $(ProjectDir)$(OutDir)*.dll"