如何使用swift从sqlite3 db中检索字符串字段

时间:2015-02-15 09:13:51

标签: string swift sqlite

我正在从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.");
    }

1 个答案:

答案 0 :(得分:2)

您应该能够以这种方式检索字符串。

let sEventTitle = String.fromCString(UnsafePointer<CChar>(sqlite3_column_text(statement, 1)))

但是我的建议是使用SQLite包装器,其中最着名的是FMDB,它在 Objective-C(在Swift中显然效果很好)但是如果你更喜欢Swift中的东西,你可以查看SwiftSQLite