SQLite3 の型に関することをまとめた。
SQLite内部で使うデータ型
- INTEGER
- 整数
- REAL
- 実数
- TEXT
- 文字列
- BLOB
- バイナリデータ
- NULL
- NULL
使用例
CREATE users ( id INTEGER NOT NULL, name TEXT, weight REAL, face BLOB );
Objective-Cが受け取る時のデータ型
SELECT文の結果を取得する際、データ型にあわせて取り出すための関数を使い分ける必要がある。
データ型ごとに識別コードが定義されており、
それは int sqlite3_column_type(sqlite3_stmt*, int iCol);
で取得できる。
また、識別コードは define で名前が付与されている。
- SQLITE_INTEGER
- 値は
1
。 - SQLiteでの
INTEGER
に対応する。 - データ取り出しには
sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
を使う。
- 値は
- SQLITE_FLOAT
- 値は
2
。 - SQLiteでの
REAL
に対応する。 - データ取り出しには
double sqlite3_column_double(sqlite3_stmt*, int iCol);
を使う。
- 値は
- SQLITE_TEXT
- 値は
3
。 - SQLiteでの
TEXT
に対応する。 - データ取り出しには
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
を使う。
- 値は
- SQLITE_BLOB
- 値は
4
。 - SQLiteでの
BLOB
に対応する。 - データ取り出しには
const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
を使う。
- 値は
- SQLITE_NULL
- 値は
5
。 - SQLiteでの
NULL
に対応する。
- 値は
資料URL
SQLiteのデータ型について https://www.sqlite.org/datatype3.html
データ型の識別コードについて https://www.sqlite.org/c3ref/c_blob.html
データを取り出す関数について https://www.sqlite.org/c3ref/column_blob.html