我正在从sqlite3数据库中读取一个表。我设法读取一个int字段(我的代码示例中的iEventYear) 但我不知道如何从sqlite数据库中读取字符串字段。
我想不使用额外的库或框架,但如果可能的话,纯粹包含sqlite3.h。
这是我的代码来演示我的问题:
let sql = "SELECT year,title FROM historyevents";
var statement:COpaquePointer = nil
//var tail: CString = ""
if sqlite3_prepare_v2(db, sql, -1, &statement, nil) != SQLITE_OK {
println("Failed to prepare statement")
exit(1)
}else{
while sqlite3_step(statement) == SQLITE_ROW {
var iEventYear:Int16 = Int16(sqlite3_column_int(statement, 0));
//Howto retrieve a string ?
var sEventTitle:String = String(sqlite3_column_xxxxxx(statement, 1));
println(count);
}
println("query ok.");
}
答案 0 :(得分:2)
您应该能够以这种方式检索字符串。
let sEventTitle = String.fromCString(UnsafePointer<CChar>(sqlite3_column_text(statement, 1)))
但是我的建议是使用SQLite包装器,其中最着名的是FMDB,它在 Objective-C(在Swift中显然效果很好)但是如果你更喜欢Swift中的东西,你可以查看SwiftSQLite