等效于 sqlite3_column_int 以获得可能的 NULL 值

Equivalent of sqlite3_column_int to get possible NULL values

在我的应用程序中,我使用 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' 但这总是 returns 一个值 (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)

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