SQLite.swift のドキュメントには、任意の SQL の実行について次のように記載されています。
let stmt = try db.prepare("SELECT id, email FROM users")
for row in stmt {
for (index, name) in stmt.columnNames.enumerate() {
print ("\(name)=\(row[index]!)")
// id: Optional(1), email: Optional("alice@mac.com")
}
}
このように値を直接取得したかった
let stmt = try db.prepare("SELECT id, email FROM users")
for row in stmt {
let myInt: Int64 = row[0] // error: Cannot convert value of type 'Binding?' to specified type 'Int64'
let myString: String = row[1] // error: Cannot convert value of type 'Binding?' to specified type 'String'
}
しかし、行インデックスは型Binding?
であり、それを必要な型に変換する方法がわかりません。ソースコードStatement.bind
にメソッドがあるようですが、それを適用する方法をまだ発見していません。