13

Microsoft Visual C#2010でFirebird組み込みサーバーを使用しようとしていたので、これまでに行ったことは次のとおりです。

  1. Firebird .NetデータプロバイダーFirebird Client v2.5.2 )をダウンロードしました。

  2. Firebird EmbeddedサーバーFirebird Embedded Server v2.5.0 )をダウンロードしました。

  3. プロジェクトにFirebirdSql.Data.FirebirdClient.dllへの参照を追加しました。

  4. fbembed.dllファイルを抽出してアプリケーションのディレクトリにコピーしました。

  5. FDBファイル「TEST.FDB」をアプリケーションのディレクトリに追加しました。

  6. 「 usingFirebirdSql.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

4

4 に答える 4

10

私はついに6時間の作業の後に解決策を見つけました:)

グーグルの答えのほとんどは間違っているか、とても古いです。それらのすべては、私が私のプロジェクトにfbembed.dllファイルを含める必要があるだけだと言っています。

いくつかの調査の後、私は行いました。また、firebird.msg、firebird.conf、icudt30.dll、icuin30.dll、icuuc30.dll、ib_util.dllプロジェクトファイルと出力フォルダーに追加する必要があることがわかりました。

重要なお知らせ:コンパクトな.Netデータプロバイダーは絶対に使用しないでください。通常およびスーパーファイアバードサーバー専用に作成されたためです。組み込みサーバーでは機能しません。

于 2010-10-25T14:05:34.817 に答える
6

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も忘れてしまいましたが、ライセンス発行用のアプリケーションと一緒に配布する必要があると思いますか?

于 2010-10-25T22:58:11.073 に答える
2

FirebirdDLLをFirebirdというプロジェクトのディレクトリに配置しました。ファイルをコピーするためのビルド後イベントを追加しました。

copy $(ProjectDir)Firebird\*.dll $(ProjectDir)$(OutDir)*.dll"
于 2012-07-28T16:26:22.190 に答える
0

これらは、Firebird3.0.5に必要なファイルとディストリビューションです。

- root\plugins\engine12.dll

- root\intl\fbintl.conf
- root\intl\fbintl.dll

- root\fbclient.dll
- root\icudt52.dll
- root\icudt52l.dat
- root\icuuc52.dll

アプリケーションの最初にそれらをチェックして、何がうまくいかないかを知らせることができます。

于 2020-06-07T18:30:24.387 に答える