リレーショナルデータベース(RDB)というと、OracleやDB2を想像して大掛かりなことをやりそうに思われがちですが(*1)、私は1000件程度のデータでも使うことがあります。データの追加・変更・削除が多いとき、不意にプログラムが落ちたときに続きから再開することが重要なとき、いろんなところからデータのアクセスがありそうなときなど。データ量よりは、落ちたときにでも最新の情報を記録していること・データが壊れないことを重要視しています。ブログにだってRDB使ってるやつあるんですよ。
データが少量&Windowsのときは、これまでMicrosoft JET(mdbファイル、いわゆるAccessのファイル)を使っていましたが、今回Visual Studio 2005についてくるSQL Server 2005 Expressを使ってみようと。こいつ、ひとつのデータベースが二つのファイル(データ本体とトランザクション)に収まっていまして、接続時にそのファイルを指定できるので、データファイルの位置を自由に配置できるという面白い仕組みがあります(*2)。
- まず元となるデータベースファイル(*.mdf)は第2回 無償データベース SQL Server 2005 Express Editionを使ってみよう (@IT) などを参考に、Visual Studio 2005からデータベースプロジェクトを作成し、そこでテーブルを定義しておきます。
- ADO.NETを使ってのデータベースへのアクセスは簡単。10 行でズバリ !! ADO.NET によるデータの取得 (VB) などを参考に。AttachDbFilename=(自分の作ったmdfファイル)と指定すればOK。
- ODBC接続の設定がちょっと詰まりました。
- SQL Server Management Studio Express をインストールして、管理者権限で立ち上げる。
- データベースのアイコンを右クリック、アタッチを選択。
- 追加ボタンを押し、作成したmdfファイルを指定。
- コントロールパネルの管理ツール内にあるデータベース接続を使用、ドライバにSQL Native Clientを指定。
- 次のページのサーバ名は".¥SQLEXPRESS"
- 次の認証のページはご自由に
- 次のページでChange the default database toにチェックマークを入れ、その下にmdfファイルを指定する
(2008/6/25 追記: その下のAttach Database filenameにもチェックを入れ、同じファイル名を指定しないとエラーになることがあるみたいです)
さぁて、これ使ってプロジェクトを完成させないとな・・・
- (*1)
- 少なくともうちの会社の周辺は。プロジェクトにRDB採用したというだけで、凄そうに触れ回った人がいましたが、恥ずかしいから勘弁して(;_;)
- (*2)
- 私がMySQL/PostgreSQL/DB2しか使ったことないので、特に珍しくない機能かも^^;
[2008/6/27] SQL Management Studio Expressの記述を追加
Comments