はじめに
過去の記事で何度かSQLiteをお題に取り上げ、そこでは「SQLiteライブラリ構築法」と「C++/CLIによる.NET用の簡単なラッパー」について解説しました。今回はちょっと趣を変え、SQLiteを使った小さなアプリケーション、"おこづかいちょう"を作ります。小規模とはいえ、実用アプリケーションにかなり近いサンプルとなっています。
"おこづかいちょう"のデータをSQLiteで保持/管理し、SQLiteとC#との間をC++/CLIが仲介します。
SQLiteの下準備
SQLiteのサイトからソースコードおよびコンパイル済のDLLが入手できます。アプリケーションで利用するにはソースコードをコンパイルしライブラリを作らなければなりませんが、今回は少し楽をしましょう。ダウンロード・ページから、
- sqlite3_amalgamation-####.zip(ソースコード、ヘッダ、DEFファイル)
- sqlite3_dll-####.zip(DLL)
の2つを入手します(####
にはバージョン番号が付加されています)。得られたDLLとDEFからインポート・ライブラリ(LIB)を生成しましょう。「sqlite3.dll」と「sqlite3.def」を適当なディレクトリに置き、コマンドプロンプトから、
lib /VERBOSE /MACHINE:I386 /DEF:sqlite3.def /OUT:sqlite3.lib /NAME:sqlite3.dll
を実行することでインポート・ライブラリ「sqlite3.lib」が生成されます。ユーザーコードのコンパイル時に「sqlite3.h」、リンク時に「sqlite3.lib」、実行時に「sqlite3.dll」が使われることになります。
SQLiteのキホン
SQLiteによるアプリケーションで最小限必要なSQLite-APIのセットはそれほど大きなものではありません。主要なAPIを列挙すると、
- データベースのopen/close
- sqlite3_open
- sqlite3_close
- SQL文の実行
- sqlite3_prepare_v2
- sqlite3_step
- sqlite3_finalize
- カラム値のバインドと取得
- sqlite3_bind_xxx
- sqlite3_column_xxx
この程度です。
C/C++からSQLiteを利用する際ソースコードに必要なのは#include<sqlite3.h>
の一行だけ。リンク時には前章で生成した「sqlite3.lib」をプロジェクトに追加してください。
それではSQLiteのC/C++APIのキホンについて、順に説明していきましょう。