android - 无法检索 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() 时,我得到了表的记录数。
对此有什么建议吗?
解决方案
Android 的 SQLite 实现存在大小限制。客户端无法检索超出限制的 BLOB。您可能会在 Android 调试日志中看到消息(或异常)。
也许将图像存储为文件?
您还可以substr
按照此答案Android sqlite 如何正确检索块中大于 1 mb 的 blob 来读取多个块中的 BLOB
SQLite 建议在磁盘上存储超过 100 KB 的值会更有效:https ://www.sqlite.org/intern-v-extern-blob.html
推荐阅读
- spring - HsqlException:不兼容的数据类型组合
- circular-dependency - 使用 inversifyJS 解决类循环依赖
- python - 回溯 - 递归调用中的列表更新问题
- java - 如何为 Maven 命令行附加 VM 选项
- flutter - Flutter:从抽象类扩展类时更改 Todo 文本
- assembly - 将数组移位 1 位
- arrays - 如何在 C 中螺旋填充二维数组?示例/问题
- azure - 如何创建没有安全证书的 Azure 服务结构集群以供测试使用?
- java - 生成器模式。重复参数的初始化?
- c++ - CLion 和带有 DLL 的多个项目