【问题标题】:Equivalent of sqlite3_column_int to get possible NULL values等效于 sqlite3_column_int 以获得可能的 NULL 值
【发布时间】:2022-02-15 03:10:21
【问题描述】:

在我的应用程序中,我使用SQLite 数据库来存储一些数据。整数字段之一是可选的,因此定义如下:

我有以下CREATE 声明:

CREATE TABLE IF NOT EXISTS Test (id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp FLOAT NOT NULL, testProperty INT);

我可以使用sqlite3_column_double 获得浮动属性。对于 int 列,我可以使用 'sqlite3_column_int' 但这总是返回一个值 (0),即使该行不包含值。

如何检查该行是否确实具有此属性的值?

我有以下代码来获取所有行:

var statement: OpaquePointer? = nil
let sql = "SELECT * FROM Test;"
   
sqlite3_prepare_v2(self.connection, sql, -1, &statement, nil)
    
while sqlite3_step(statement) == SQLITE_ROW
{
  let testProperty = sqlite3_column_int(statement, 2) // always returns 0
}
    
sqlite3_finalize(statement)

【问题讨论】:

标签: sql swift sqlite


【解决方案1】:

您可以使用sqlite3_column_type() 来检查它是SQLITE_INTEGER 还是SQLITE_NULL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多