SQLite3の構文(その1)



SQLite3というモジュールがあります。

これは、データベースの一種です。

CSVなどで作成すると非常に手間がかかり、取り出すにもかなりの時間が要します。

iPhoneなどでもこのモジュールが使えるというのはすごくうれしいことです。

画像データやiPodの曲リストなどをSELECT文で簡単に整理ができるので、

開発が楽になります。

私が使用している関数を紹介していきます。


構文:


int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);

内容:


データベースをオープンするための関数

パラメータ:


○ const char *filename
データベースのパス

○ sqlite3 **ppDb
データベースコネクション
 構造体
 typedef struct sqlite3 sqlite3;
 を設定する

戻り値:


成功:SQLITE_OK
失敗:SQLITE_OK以外
  エラー内容を取得したい場合は、以下の関数を使用する
sqlite3_errcode、sqlite3_extended_errcode、
sqlite3_errmsg、sqlite3_errmsg16

例:


int result = sqlite3_open([nsPath UTF8String], &database);


構文:


int sqlite3_prepare(
sqlite3 *db, /* Database handle */
const char *zSql, /* SQL statement, UTF-8 encoded */
int nByte, /* Maximum length of zSql in bytes. */
sqlite3_stmt **ppStmt, /* OUT: Statement handle */
const char **pzTail /* OUT: Pointer to unused portion of zSql */
);
int sqlite3_prepare_v2(
sqlite3 *db, /* Database handle */
const char *zSql, /* SQL statement, UTF-8 encoded */
int nByte, /* Maximum length of zSql in bytes. */
sqlite3_stmt **ppStmt, /* OUT: Statement handle */
const char **pzTail /* OUT: Pointer to unused portion of zSql */
);
int sqlite3_prepare16(
sqlite3 *db, /* Database handle */
const void *zSql, /* SQL statement, UTF-16 encoded */
int nByte, /* Maximum length of zSql in bytes. */
sqlite3_stmt **ppStmt, /* OUT: Statement handle */
const void **pzTail /* OUT: Pointer to unused portion of zSql */
);
int sqlite3_prepare16_v2(
sqlite3 *db, /* Database handle */
const void *zSql, /* SQL statement, UTF-16 encoded */
int nByte, /* Maximum length of zSql in bytes. */
sqlite3_stmt **ppStmt, /* OUT: Statement handle */
const void **pzTail /* OUT: Pointer to unused portion of zSql */
);

内容:


zSqlで入力されたSQL文を実行し、結果をppStmtステートメントに設定されます。
もし、取得できなかった場合は、ppStmtには、NULLを設定されます。

パラメータ:


○ sqlite3 *db
データベースコネクション
 構造体
 typedef struct sqlite3 sqlite3;
 を設定する

○ const char *zSql
SQLステートメントを設定します。
sqlite3_prepareまたは、sqlite3_prepare_v2では、「UTF-8」を使用。
sqlite3_prepare16または、sqlite3_prepare16_v2では、「UTF-16」を使用。

○ int nByte
SQLステートメント(zSql)をnByte使用するかを設定。
0より小さい値を設定するとすべてを読み込まれる。

○ sqlite3_stmt **ppStmt
 取得するステートメントをここに確保します。
 もし、取得できなかった場合は、NULLを設定されます。

○ const char **pzTail
  SQLステートメント(zSql)で使用しなかった、つまり、終端の次のバイトを設定されます。

戻り値:


成功:SQLITE_OK
失敗:SQLITE_OK以外

例:


int result = sqlite3_prepare_v2 ( database,"SELECT * FROM DATA_BASE", -1 ,&statement,nil);


構文:


int sqlite3_close(sqlite3 *);

内容:


sqlite3_open(), sqlite3_open16(), or sqlite3_open_v2()
でオープンしたデータベースをクローズします。

パラメータ:


○ sqlite3 **ppDb
データベースコネクション
 構造体
 typedef struct sqlite3 sqlite3;
 を設定する

戻り値:


不明

例:


sqlite3_close(database);