
自分が仕事で主に使用しているデータベースは MySQL で、クセもコツもある程度は把握している。最初はこれを使おうとも考えたが、環境を変更するたびにデータベースの再インストールをするのは面倒だ。今後、ひょっとしたら公開する可能性もある(まさかユーザ全員に MySQL をインストールさせるわけにはいかない)。無償データベースには PostgreSQL や SQL Server 2005 Express Edition 等々いくつかあるが、上記と同じ理由によりこれも却下。
ではどうするかというと、以前から知識としてだけはあった小型・軽量の組み込みデータベースである SQLite を使ってみることにした。で、Visual C++ なら以下のページに詳しく書いてあるので、そのままやればよい。SQlite のバージョンが古く、さらに Express Edition だが、Professional Edition でもだいたい同じ手順で行える。
[SQLiteで組み込みDB体験(2007年版)]
http://codezine.jp/a/article/aid/1252.aspx
これでめでたしめでたし… ではつまらないので、個人的に小物ツール作成やホビー用途に使用している Borland C++ Builder 6(以下BCD6)でも SQLite を使ってみることにする。
SQLite は上記サイトの説明と同じように以下からダウンロードする。
[SQLite Download Page]
http://www.sqlite.org/download.html
ダウンロードするファイルは「Source Code」の「sqlite-amalgamation-3_5_1.zip」にする。これならソースファイルがひとつにまとめられていて扱いが簡単だからだ。これを解凍したらソースファイルとヘッダファイルは同じフォルダに入れておく。なお、SQLite サイトには、他にコマンドラインツール類もあるので、必要ならそちらも落としておくといいだろう(もちろん後でも構わない)
次は BCD6 の設定を行う。メニューから「ファイル」→「新規作成」→「その他」から「コンソールウィザード」を選択する。

ソースの種類を C にして、プロジェクトソースはダウンロードした「sqlite.c」を指定する。ここまでやったらひとまず(メイクではなく)コンパイルしてエラーが出ないかを確認しておく。警告が山ほど出るのは気にしない(これは VC++ でも状況は同じ)。
※以前のバージョンでは 一部 struct 定義中にある const の変数が初期化されていない旨のエラーが発生していたが、現在のバージョンでは修正されたようである。
続いて以下のページのソースコードを sample.cpp として別途テキストエディタで作成する。
http://codezine.jp/a/article/aid/1252.aspx?p=2
上記で作成した sample.cpp を sqlite.c と同じプロジェクトに追加したら、おもむろにメイク。が、実はこのままメイクすると sample.cpp の36行目付近でエラーが出る。

解決方法はいろいろだが、ひとまずこの行の前後にある文字列リテラルを単に1行にしてしまうのがよい。
これでメイク完了となるはず(相変わらず警告だらけだけど)。出来上がった実行ファイル(Project.exe とかなんとか)をコマンドプロンプトから実行して、以下のような結果が表示されたらOK。

この下準備は何をしているのかというと、メモリ上にデータベースを作成する実験だ。これによって、高速かつ高機能なデータベースを簡単に利用することができるようになる。軽量データベースとはいえ、以下のように扱える SQL 言語は豊富に揃っているのでものすごく便利だ。
[SQLite が認識できる SQL]
http://www.net-newbie.com/sqlite/lang.html
これで開発の下準備は出来た。
今後、ヒマな時間を見つくろって、総合的な「18xx」管理ツールの作成を進めてみたいと思う。