【问题标题】:Can't retrieve BLOB field SQLite Android无法检索 BLOB 字段 SQLite Android
【发布时间】:2019-03-14 20:28:52
【问题描述】:

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

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

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

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

对此有何建议?

【问题讨论】:

  • 我认为将项目存储在内存中并将URI存储在数据库中会更有效
  • 好的。我会试试的:)

标签: android sqlite


【解决方案1】:

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

也许将图像存储为文件?

您也可以使用 substr 读取多个块中的 BLOB,而不是按照这个答案 Android sqlite how to retrieve blob > 1 mb in chunks correctly

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

【讨论】:

  • 听起来不错。我会检查一下。谢谢。
猜你喜欢
  • 2011-09-09
  • 2012-09-24
  • 2012-04-28
  • 2014-01-08
  • 1970-01-01
  • 2022-01-12
  • 2013-09-19
  • 2013-07-21
  • 2018-11-11
相关资源
最近更新 更多