1

在我的数据库中,有很多选项在开始时需要输入 ISNT,因此它可以为空。我正在查看 SQLite3 的 C++ api,但乍一看(http://www.sqlite.org/c3ref/funclist.html)我没有找到任何关于如何处理这个问题的信息。我遇到的唯一一件事是当您请求列并且该列为空时返回的内容(此处显示:http ://www.sqlite.org/c3ref/column_blob.html )。

问题是,可能不会出现错误,因为 0 是许多常见事物的有效解决方案(作为程序员,我们通常从 0 开始计数)。

我想要做的是找到一个布尔语句(如果有的话),这样我就可以在提取数据之前检查是否为空。这样,可以返回一个正确的标志而不是 0。

其他人在这里有问题吗?

4

1 回答 1

1

您始终可以在获取数据之前检查列的类型(这将进行转换)。你用 来做sqlite3_column_type,它返回SQLITE_NULL一个 NULL 值:

bool isNull(sqlite3_stmt *stmt, int iCol)
{
    return sqlite3_column_type(stmt, iCol) == SQLITE_NULL;
}
于 2012-12-06T18:17:37.877 回答