プログラムで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データベースファイルを作成するにはどうすればよいですか?
あなたは重要なポイントを逃している、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.dll
3+plugins\engine12.dll
および依存関係が必要です。
コード自体にはほとんど問題はありませんが、コードを実行するには、FirebirdEmbeddedを取得するために次のことを行う必要があります。
最新のFirebird3 zipキットをダウンロードします(32ビットまたはAnyCPUアプリケーションの場合は32ビット、64ビットアプリケーションの場合は64ビットを使用します)。
執筆時点での最新バージョンはFirebird3.0.1です。Firebird 3のダウンロードページから入手できます。Win32またはWin64で「手動/カスタムインストール用のZipキット」を探してください。
D:\Temp\fb3embedded
)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キットをダウンロードし、フォルダーに解凍して、そのフォルダー内ClientLibrary
のfbembed.dll
(ではなくfbclient.dll
)をポイントします。
FbConnection.CreateDatabase
データベースがすでに存在し、overwrite
として指定した場合は、例外がスローされることに注意してくださいfalse
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加