首页 > 解决方案 > 无法检索 BLOB 字段 SQLite Android

问题描述

我在 SQLLite 的表中插入图像。我创建了具有 Blob 字段的表,它的插入效果很好(至少我得到了插入记录的 ID)。

问题是当我尝试选择 Blob 字段以在其他任何地方使用它时。

例如:SELECT Field1,ImageBlob FROM Images 返回和空集。但是 SELECT Field1 FROM Images 返回所有记录。还 Select * From Images 返回一个空集

我可以在 where 子句中使用该字段。例如,如果我的查询是一个 count( ),其中 ImageBlob 为 NULL,我得到一个零。但是当我的查询是ImageaBlob IS NOT NULL 的 Count() 时,我得到了表的记录数。

对此有什么建议吗?

标签: androidsqlite

解决方案


Android 的 SQLite 实现存在大小限制。客户端无法检索超出限制的 BLOB。您可能会在 Android 调试日志中看到消息(或异常)。

也许将图像存储为文件?

您还可以substr按照此答案Android sqlite 如何正确检索块中大于 1 mb 的 blob 来读取多个块中的 BLOB

SQLite 建议在磁盘上存储超过 100 KB 的值会更有效:https ://www.sqlite.org/intern-v-extern-blob.html


推荐阅读