Visual StudioでNuGetなしでFirebird Embeddedを利用する方法

この記事は公開から3年以上経過しています。

オンプレシステムの保守業務のように古いFrameworkやVisual Studioを利用して開発を行う際に、NuGetパッケージを使わずにFirebird Embeddedデータベースを利用する方法。


対応

  1. Firebird公式から64-bit Embedded(または32-bit Embedded)のZIPをダウンロード。
    (本例では64bit版の最新Firebird-2.5.9.27139-0_x64_embed.zipをダウンロード)

  2. C:\Toolsなど任意のフォルダに上記ZIPを解凍。
    (本例ではC:\Tools\Firebird-2.5.9.27139-0_x64_embedへ配置)

  3. SourceForgeからFirebird ADO.NET Providerをダウンロード。
    (本例では.NET Framework3.5で使用できるNETProvider-3.2.0.0-NET35.7zをダウンロード)

  4. Visual Studioのプロジェクトディレクトリまたはソリューションディレクトリに上記7ZIPを解凍。
    (本例は単一プロジェクトのためプロジェクトディレクトリへ配置)
    file

  5. Visual Studioのソリューションエクスプローラのプロジェクトのコンテキストメニューから追加既存の項目で、手順2のFirebird EmbeddedライブラリDLL群をリンクとして追加で追加する。
    file
    追加後↓
    file

  6. 追加したDLLを全選択し、プロパティ欄の詳細からビルドアクションなし出力ディレクトリにコピー新しい場合はコピーするに設定する。
    file

  7. Viusal Studioのソリューションエクスプローラのプロジェクトの参照のコンテキストメニューから参照の追加で参照マネージャーを開き、参照ボタンを押下して手順4のFirebird ADO.NET ProviderライブラリDLLを選択してアセンブリ参照に追加する。
    file

以上でVisual Studioのプロジェクト設定は完了です。


サンプルソースコード

以下、新規FDBファイルをEXEのカレントディレクトリ内に作成したうえで新規テーブルを追加するサンプルです。

using FirebirdSql.Data.FirebirdClient;

namespace FirebirdTest210508
{
    class Program
    {
        static void Main(string[] args)
        {
            // 接続文字列生成
            var connectionString = new FbConnectionStringBuilder
            {
                Database = @"test.fdb",
                Charset = "utf8",
                UserID = "SYSDBA",
                Password = "masterkey",
                ServerType = FbServerType.Embedded
            }.ConnectionString;

            // FDBファイル生成
            FbConnection.CreateDatabase(connectionString);

            // FDBにテーブルを追加
            using (var con = new FbConnection(connectionString))
            {
                con.Open();
                using (var fbCmd = new FbCommand("create table test_Tbl (id integer, val integer)", con))
                {
                    fbCmd.ExecuteNonQuery();
                }
            }
        }
    }
}

ちなみに参考ウェブサイトの公式情報に書かれているように、Firebird Embeddedでは接続文字列のUserIDとPasswordを任意の値に変更しても認証ができずFDBファイル内のデータも暗号化されないため、重要な情報を扱う場合は端末利用者がFDBファイルに直接アクセスできないようにファイルシステムレベルでのアクセス制御を行なったうえで、Firebird Server経由でログイン認証やアクセス制御を行うといった対応が必要となります。


参考ウェブサイトなど

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする