プログラムでFirebirdデータベースファイルを作成するにはどうすればよいですか?

ttom

プログラムでFirebirdデータベースファイルを作成するにはどうすればよいですか?

SQLite(C#.NET、System.Data.SQLite)を使用してコードを記述しました... Firebirdを試すことにしました。

Firebirdをインストールするには:Windows 7-> Visual Studio2013->ファイル->新規->プロジェクトなど----------次にツール->ライブラリパッケージマネージャー-> NuGetパッケージの管理->検索 "firebird "-> Firebird ADO.NETデータプロバイダー->インストール(ボタン)。

結果として、a)参照-> FirebirdSql.Data.FirebirdClient、およびb)FirebirdSql.Data.FirebirdClient.5.8.0サブディレクトリ...とFirebird.dllが作成されます。

Firebirdデータベースファイルを作成するために、私は試しました(別のStackOverflow投稿から抽出):

int pageSize = 4096;
bool forcedWrites = true;
bool overwrite = false;
var connectionString = new FbConnectionStringBuilder
{
    Database = stPathFilename,
    ServerType = FbServerType.Embedded,
    UserID = "SYSDBA",
    Password = "masterkey",
    ClientLibrary = "fbclient.dll"
}.ToString();
FbConnection.CreateDatabase(connectionString, pageSize, forcedWrites, overwrite);

stPathFilenameを除いて、これは標準であると思いました。ただし、このコードは例外を介して... fbclient.dllについて文句を言います。

それから私は試しました

    ClientLibrary = "FirebirdSql.Data.FirebirdClient.dll" 

...これは私のデバッグサブディレクトリにあります。

これにより、例外がスローされます...「DLL'FirebirdSql.Data.FirebirdClient.dllで 'isc_create_database'という名前のエントリポイントが見つかりません」。

プログラムでFirebirdデータベースファイルを作成するにはどうすればよいですか?

Mark Rott Veel

あなたは重要なポイントを逃している、FirebirdのADO.netプロバイダは次のようではありませんSystem.Data.SQLite:それはありませんFirebirdのデータベースエンジン、FirebirdのTCP / IPの純粋なC#実装を通じて、デフォルトでは、Firebirdのサーバーに接続するための唯一のクライアントでありますワイヤープロトコル、あるいはネイティブクライアントまたは組み込みの「サーバー」(インプロセスデータベースエンジンと直接通信するネイティブクライアントAPI)を使用します。

最初のオプションには依存関係はありませんが、2番目と3番目のオプションには、自分で提供する必要のあるネイティブの依存関係があります(FirebirdSql.Data.FirebirdClientの一部ではありません)。

ネイティブの場合はfbclient.dll、Firebird Embeddedの場合は、Firebird Embedded:Firebird 2.5以前の場合:fbembed.dllおよび依存関係、Firebird fbclient.dll3+plugins\engine12.dllおよび依存関係が必要です。

コード自体にはほとんど問題はありませんが、コードを実行するには、FirebirdEmbeddedを取得するために次のことを行う必要があります。

  1. 最新のFirebird3 zipキットをダウンロードします(32ビットまたはAnyCPUアプリケーションの場合は32ビット、64ビットアプリケーションの場合は64ビットを使用します)。

    執筆時点での最新バージョンはFirebird3.0.1です。Firebird 3のダウンロードページから入手できます。Win32またはWin64で「手動/カスタムインストール用のZipキット」を探してください

  2. フォルダに解凍します(例D:\Temp\fb3embedded
  3. すべてのファイルを保持できますが、Firebird Embeddedには必要ないため、ほとんどのファイルを削除できます(zipkitは完全なFirebirdサーバーでもあります)。次のものを保持する必要があります。
    • intl フォルダとすべてのコンテンツ(文字セットと照合のサポートに必要)
    • plugins\engine12.dll(データベースエンジン自体、の他のファイルpluginsが削除される場合がありますが、これにより一部の機能が制限される場合があります)
    • fbclient.dll (組み込みエンジンのメインエントリポイント)
    • firebird.msg (エラーメッセージが含まれています)
    • icu* (文字セットと照合のサポートに必要)
    • あなたは維持する必要があるかもしれませんmsvcp100.dllし、msvcr100.dllまだインストールされていない場合(それは通常、最新のWindowsシステム上にあります)

技術的には削除することもできますがintl、それでは文字セットのサポートが制限されます。

コードでは、をClientLibrary = "fbclient.dll"指定する代わりにClientLibrary = @"D:\Temp\fb3embedded\fbclient.dll"、それが機能します。デプロイされたアプリケーションの場合、Firebird Embeddedをアプリケーションフォルダー内に配置し、相対パスを使用することもできます。

Firebird 2.5以前の場合、手順は似ていますが、代わりに、そのバージョンのEmbedded zipキットをダウンロードし、フォルダーに解凍して、そのフォルダー内ClientLibraryfbembed.dll(ではなくfbclient.dllをポイントます。

FbConnection.CreateDatabaseデータベースがすでに存在し、overwriteとして指定した場合は、例外がスローされることに注意してくださいfalse

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プログラムでデータベースファイルの名前を変更するにはどうすればよいですか?

分類Dev

データベースのファイル名をプログラムで設定するにはどうすればよいですか?

分類Dev

データベースからログインユーザーのプロファイルを作成するにはどうすればよいですか?

分類Dev

レコーディングベースのカスタムファイルパスを作成するにはどうすればよいですか?

分類Dev

カスタムプログラムをインストールするディスクを作成するにはどうすればよいですか?

分類Dev

ラベルアクティビティレポート(O365データガバナンス)のユーザーレベルとファイルレベルをプログラムで取得するにはどうすればよいですか?

分類Dev

ファイルの内容を読み取るJavaスレッドプールプログラムを作成するにはどうすればよいですか?

分類Dev

PostScriptファイルの上にプログラムオーバーレイテキストを作成するにはどうすればよいですか?

分類Dev

エディターを使用せずにEclipseでプログラムでファイルを保存するにはどうすればよいですか?

分類Dev

ユーザーがファイル名を指定できるようにプログラムを作成するにはどうすればよいですか?

分類Dev

グラフの各データポイントにカスタムツールチップを作成するにはどうすればよいですか?

分類Dev

プログラムでiCal(.ics)ファイルを作成するにはどうすればよいですか?

分類Dev

特定の(json)スキーマのOrientDBデータベースをプログラムで作成するにはどうすればよいですか?

分類Dev

データベースを既存のAlwaysOn可用性グループ(AOAG)にプログラムで追加するにはどうすればよいですか?

分類Dev

ElasticPoolにAzureSQLデータベースをプログラムで作成するにはどうすればよいですか?

分類Dev

Facebook Messengerの会話をプログラムで取得し、ローカルデータベースに保存するにはどうすればよいですか?

分類Dev

データベースにテキストを保存し、サーバーにファイルをアップロードするフォームを作成するにはどうすればよいですか

分類Dev

ローカルデータベースを添付してexeファイルを作成するにはどうすればよいですか?(Visual Studio C#)

分類Dev

プログラムでAndroidでタイマーを作成するにはどうすればよいですか?

分類Dev

expect / TCLスクリプトのダンプファイルからMySQLデータベースを作成するにはどうすればよいですか?

分類Dev

expect / TCLスクリプトのダンプファイルからMySQLデータベースを作成するにはどうすればよいですか?

分類Dev

ディレクトリ内のすべての新しいファイルに新しいファイル名を作成するようにプログラムをコーディングするにはどうすればよいですか?

分類Dev

ラスターベースのシェープファイルのIDごとにトリミングされたラスターを作成するためのループを作成するにはどうすればよいですか?

分類Dev

プログラムでtampermonkeyスクリプトをローカルファイルに更新するにはどうすればよいですか?

分類Dev

プログラムでtampermonkeyスクリプトをローカルファイルに更新するにはどうすればよいですか?

分類Dev

「iPhoneデバイス構成プロファイル」がデバイスにインストールされているかどうかをプログラムで確認するにはどうすればよいですか?

分類Dev

Goでクロスプラットフォームのファイルパスを作成するにはどうすればよいですか?

分類Dev

Dockerのローカルファイルシステムにログ/データを永続化するにはどうすればよいですか?

分類Dev

ユーザーのさまざまなプロファイルをデータベースに保存するにはどうすればよいですか?

Related 関連記事

  1. 1

    プログラムでデータベースファイルの名前を変更するにはどうすればよいですか?

  2. 2

    データベースのファイル名をプログラムで設定するにはどうすればよいですか?

  3. 3

    データベースからログインユーザーのプロファイルを作成するにはどうすればよいですか?

  4. 4

    レコーディングベースのカスタムファイルパスを作成するにはどうすればよいですか?

  5. 5

    カスタムプログラムをインストールするディスクを作成するにはどうすればよいですか?

  6. 6

    ラベルアクティビティレポート(O365データガバナンス)のユーザーレベルとファイルレベルをプログラムで取得するにはどうすればよいですか?

  7. 7

    ファイルの内容を読み取るJavaスレッドプールプログラムを作成するにはどうすればよいですか?

  8. 8

    PostScriptファイルの上にプログラムオーバーレイテキストを作成するにはどうすればよいですか?

  9. 9

    エディターを使用せずにEclipseでプログラムでファイルを保存するにはどうすればよいですか?

  10. 10

    ユーザーがファイル名を指定できるようにプログラムを作成するにはどうすればよいですか?

  11. 11

    グラフの各データポイントにカスタムツールチップを作成するにはどうすればよいですか?

  12. 12

    プログラムでiCal(.ics)ファイルを作成するにはどうすればよいですか?

  13. 13

    特定の(json)スキーマのOrientDBデータベースをプログラムで作成するにはどうすればよいですか?

  14. 14

    データベースを既存のAlwaysOn可用性グループ(AOAG)にプログラムで追加するにはどうすればよいですか?

  15. 15

    ElasticPoolにAzureSQLデータベースをプログラムで作成するにはどうすればよいですか?

  16. 16

    Facebook Messengerの会話をプログラムで取得し、ローカルデータベースに保存するにはどうすればよいですか?

  17. 17

    データベースにテキストを保存し、サーバーにファイルをアップロードするフォームを作成するにはどうすればよいですか

  18. 18

    ローカルデータベースを添付してexeファイルを作成するにはどうすればよいですか?(Visual Studio C#)

  19. 19

    プログラムでAndroidでタイマーを作成するにはどうすればよいですか?

  20. 20

    expect / TCLスクリプトのダンプファイルからMySQLデータベースを作成するにはどうすればよいですか?

  21. 21

    expect / TCLスクリプトのダンプファイルからMySQLデータベースを作成するにはどうすればよいですか?

  22. 22

    ディレクトリ内のすべての新しいファイルに新しいファイル名を作成するようにプログラムをコーディングするにはどうすればよいですか?

  23. 23

    ラスターベースのシェープファイルのIDごとにトリミングされたラスターを作成するためのループを作成するにはどうすればよいですか?

  24. 24

    プログラムでtampermonkeyスクリプトをローカルファイルに更新するにはどうすればよいですか?

  25. 25

    プログラムでtampermonkeyスクリプトをローカルファイルに更新するにはどうすればよいですか?

  26. 26

    「iPhoneデバイス構成プロファイル」がデバイスにインストールされているかどうかをプログラムで確認するにはどうすればよいですか?

  27. 27

    Goでクロスプラットフォームのファイルパスを作成するにはどうすればよいですか?

  28. 28

    Dockerのローカルファイルシステムにログ/データを永続化するにはどうすればよいですか?

  29. 29

    ユーザーのさまざまなプロファイルをデータベースに保存するにはどうすればよいですか?

ホットタグ

アーカイブ