#author("2016-06-06T16:43:13+09:00","default:wikiwriter","wikiwriter")
[[SQLite]]

&tag(FMDB);
*目次 [#f8e9abd7]
#contents
*関連ページ [#d4f819e0]
-[[SQLite]]

*参考情報 [#v7e9630d]

*概要 [#i1637778]
-SQLiteをObjective-CやSwiftから利用するためのライブラリ


*Swiftから使う [#uff7e27d]

**nilの取り扱いに注意 [#s7a88320]
-基本Objective-C用に作られたライブラリなのでnilの取り扱いに注意が必要。

**INSERTする場合 [#g4ba4a57]
-nilをNULLとしてDBに保存したい場合NSNullに変換する。
#pre{{
do {
    let identifier = 42
    let name = "Liam O'Flaherty (\"the famous Irish author\")"
    let date = NSDate()
    let comment: String? = nil

    try db.executeUpdate("INSERT INTO authors (identifier, name, date, comment) VALUES (?, ?, ?, ?)", values: [identifier, name, date, comment ?? NSNull()])
} catch {
    print("error = \(error)")
}
}}
**値を取得する場合 [#sc22e8b8]
-stringForColumnはNULLをnilとして返す。大してintForColumnはNULLを0として返す。[[Result Values From A Query:https://www.sqlite.org/c3ref/column_blob.html]]のConversionを参考のこと。
-intForColumnだとNULLが保存されていても0が保存されていても区別できないことになる。区別したい場合columnIsNullを使用する。








トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS