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

Howto retrieve a string field from sqlite3 db with swift

我正在从 sqlite3 数据库读取 table。我设法读取了一个 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.");
    }

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

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

但是我的建议是使用 SQLite 包装器,最著名的包装器之一是 FMDB,它位于 Objective-C(显然在 Swift 中也能很好地工作),但如果您更喜欢 Swift 中的某些内容,您可以查看 SwiftSQLite