Swift Sqlite3_column_text()

时间:2016-10-05 15:33:47

标签: ios database swift sqlite

if sqlite3_prepare_v2(db, "select a from aaa", -1, &q,nil) == SQLITE_OK {
    while sqlite3_step(q) == SQLITE_ROW {
        let res = sqlite3_column_text(q, 1)
        print(res)
    }
} else {
    print("NOT WORKING")
    NSLog("%s", sqlite3_errmsg(db))
}

在我的表aaa中,我有一个名为'a'的字段,其值为1,2,3,如下所示:

enter image description here

我正在尝试将值放在数组中或只打印它们,但是当我打印(print(res))时,值只是“nil”。

我如何获得真正的价值?

编辑:值(1,2,3)是字符串而不是intagers,这就是为什么我选择了sqlite3_column_text()而不是sqlite3_column_int()

2 个答案:

答案 0 :(得分:4)

解决:

问题是将函数sqlite3_column_text()转换为字符串,swift3中的解决方案是:

let string = String(cString: sqlite3_column_text(statement, 0))

答案 1 :(得分:0)

我认为a的数据类型为Int,您将其作为文本sqlite3_column_text提取。

请改为:sqlite3_column_int

如果不起作用请尝试以下组合:

  • Int with row 0:sqlite3_column_int(q, 0)

  • 第0行的文字:sqlite3_column_text(q, 0)