SQLite3 の C/C++ インターフェース

中心となるオブジェクトとインターフェース

オブジェクト。
  • データベース接続オブジェクト: sqlite3
  • Prepared Statement オブジェクト: sqlite3_stmt
そして、これらを操作する関数。
  • sqlite3_open()
  • sqlite3_prepare()
  • sqlite3_step()
  • sqlite3_column()
  • sqlite3_finalize()
  • sqlite3_close()

これらには UTF-8 用のもの、UTF-16 用のもの、version2 のものなど幾つかのバージョンがある。

関数の説明。

sqlite3_open():

SQLite3 のデータベースファイルへの接続を開き、接続オブジェクトを返す。たいてい sqlite3 API を使うとき最初に呼ばれる。

sqlite3_prepare():

文字列の SQL 文を prepared statement に変換し、ポインタを返す。sqlite3_open() で取得したデータベース接続と SQL 文を与える必要がある。

sqlite3_step():

prepared statement を評価する。最初に実行すると結果セットの最初の行を指している状態になり、もう一度実行すると2行目を指している状態になる。
sqlite3_step() は最後の行に達するまで呼べる。結果セットを返さない INSERT、UPDATE、DELETE などでは、最初の呼び出しですぐに最後の行を呼んだときの値(SQLITE_DONE?)が返る。

sqlite3_column():

sqlite3_step() で評価した prepared statement の結果セットの、現在指している行の中の1カラムを返す。実際には sqlite3_column() という関数があるのではなく、sqlite3_column_*() という関数群がある。また、(string や BLOB 型の)カラムの値のサイズを返す関数やカラムの数を返す関数もある。

sqlite3_finalize():

prepared statement を破棄する。メモリリークを防ぐため、prepared statement はこの関数で必ず破棄しなくてはいけない(must)。

sqlite3_close():

データベース接続を閉じる。閉じる前に関係する prepared statement は sqlite3_finalize() で破棄しておく方が良い(should)。


(続く(予定))