如何检查SQLite数据库中列的值是否为空,如果它是Blob类型?如何检查BLOB是否为空
我获取一个光标,像这样:
public Cursor fetchArticle(int i) throws SQLException {
Cursor mCursor = mDatabase.query(true, "api_content",
new String[] { "_id", "ArticleName", "ArticleText","ImageLink", "Image" },
KEY_ID + "=" + i, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
我如何检查是否Image列的值,指数4,为空?我曾尝试以下:
- 使用isNull()方法,它始终返回false的时候,其实价值应该肯定是空
- 使用
articleCursor.getBlob(4) == null
,其中articleCursor
是一个有效的光标(返回false)
使问题更加复杂的是,当我打印出articleCursor.getBlob(4)[0]
时,它返回的值如78
或91
,它们不像我认为的任何东西null
。
而且,数据库不可能在该列中有任何数据;它必须为空。有任何想法吗?谢谢!
命令行上的普通SQL查询返回该列/行的内容是什么? –
您是否尝试过查询'length(x)'而不是'x'的补充?它将返回Null,如果x为空,并且不应该由任意八位字节序列混淆dB驱动程序和/或客户端缓冲区。 – collapsar
@DaDaDom一个普通的查询返回NULL。 –