Sqlite结果集包含空值

时间:2013-11-06 22:37:49

标签: ios sqlite

我从sqlite得到一个结果集,如下所示:

Null,23,34,45(正如(比方说)返回4项)

null值是正确的 - 但是当我尝试使用以下代码将它添加到objective-c中的数组时,我得到一个错误 - Null cstring - 这是我的代码:

[array addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement,0)]];

我尝试将null添加到数组并将其替换为零之前测试null失败,但到目前为止还没有运气。

有人可以帮我处理空值,这样我就可以在数组中添加零。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

正如Hot Licks所说,检查返回值并添加从中创建的字符串,或添加[NSNull null]

const unsigned char *column0 = sqlite3_column_text(statement, 0);
if (column0)
    [array addObject:[NSString stringWithUTF8String:(const char *)column0]];
else
    [array addObject:[NSNull null]];

答案 1 :(得分:1)

建议处理null是个不错的选择。

您还可以使用TEXT修改查询以强制列始终为CAST(column_name AS TEXT),或使用COALESCE(column_name, '')强制NULL清空字符串。