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);