4.Firebird編
Firebird用データプロバイダ「FirebirdSql.Data.FirebirdClient」を使用したDBアクセスについて解説します。FirebirdについてはWikipediaなどを参照してください。
「FirebirdSql.Data.FirebirdClient」はC#で実装されたFirebird用データプロバイダで、他のFirebirdクライアントライブラリを必要としません。
セットアップ
ゲストOS側で動作確認用Firebird DBを作成し、ホストOS側で「FirebirdSql.Data.FirebirdClient」の導入を行います。
Firebird自体はUbuntuのパッケージ管理システム(APT)から導入可能で、導入したパッケージは以下になります(2009.08.18現在)。
パッケージ | バージョン | 概要 |
firebird2.1-super | 2.1.1 | Firebird Super Server - an RDBMS based on InterBase 6.0 code |
firebird2.1-server-common | 2.1.1 | common files for firebird 2.1 servers |
firebird2.1-common | 2.1.1 | common files for firebird 2.1 servers and clients |
libfbclient2 | 2.1.1 | Firebird client library |
設定関連の修正
上記パッケージ群は
$ sudo apt-get install firebird2.1-super
で導入されますが、その際のFirebird設定処理でエラーが発生しました。以下の対応が必要になります。
1.「/etc/init.d/firebird2.1-super」の修正
... NAME="Firebird $FB_VER server manager" #↓ここから #################################################
if [ -d $RUN ]; then
#do nothing
echo "Directory '$RUN' already exists."
else
mkdir -p $RUN
chown $FBRunUser:firebird -R $RUN
fi
################################################# #↑ここまで # Check the manager is there and is executable. ...
2.Firebird再設定
$ sudo dpkg-reconfigure firebird2.1-super
ここで自動起動の有無、管理ユーザー「SYSDBA」のパスワード設定を行います。
データプロバイダの入手
「FirebirdSql.Data.FirebirdClient」は、Firebird日本ユーザー会 - ダウンロード内の[管理ツール & ドライバ]-[Firebird .NET Data Provider]からVersion 2.1.0 for .NET 2.0の[Source code(.zip)]を選択し、「FirebirdClient-2.1.0-Src.zip」をダウンロードして下さい。
Monoから提供されているFirebird用データプロバイダが存在しますが、バージョンが古いこともあり、Firebirdより提供されている「FirebirdSql.Data.FirebirdClient」を使用します。
$ gacutil -l | grep Firebird FirebirdSql.Data.Firebird, Version=1.7.1.0, Culture=neutral, PublicKeyToken=0706f5520aae4ff4
Firebird公式サイトからFirebird .NET Data Provider Version 2.5.0が2009.05.22から提供されています。Mono対応版もあり、[Download]-[Firebird .NET Data Provider]からVersion 2.5.0 for .NET 3.5/2.0の[FirebirdClient - Mono & Linux target (.zip) ]を選択すると、「FirebirdClient-2.5.0-MONO_LINUX.zip」をダウンロードできます。このzipファイルを展開して得られる「FirebirdSql.Data.FirebirdClient.dll」を使用する場合は、後述するFirebirdSql.Data.FirebirdClientのビルドは不要です。