我正在将图像插入SQLLite中的表中。我创建了一个表,该表具有一个Blob字段,并且插入的很好(至少我得到了插入记录的ID)。
问题是当我尝试选择Blob字段以在其他任何地方使用它时。
例如: SELECT Field1,ImageBlob FROM Images返回并设置为空。 然而 SELECT Field1 FROM Images返回所有记录。 也 选择* From Images返回一个空集
我可以在where子句中使用该字段。例如,如果我的查询是ImageBlob为NULL的count(),则得到零。但是当我的查询是ImageaBlob不是NULL的Count()时,我得到了表的记录数。
对此有何建议?
答案 0 :(得分:1)
存在与Android的SQLite实现相关的大小限制。客户端无法检索超出限制的BLOB。您可能会在Android调试日志(或例外)中看到消息。
也许将图像存储为文件?
您还可以使用substr
而不是按照此答案Android sqlite how to retrieve blob > 1 mb in chunks correctly
SQLite建议在磁盘上存储大小超过100 KB的值更加有效:https://www.sqlite.org/intern-v-extern-blob.html