【发布时间】:2012-09-24 20:59:49
【问题描述】:
我在 Android 应用程序的 sqlite 数据库中存储了大块二进制数据(protobufs),却没有意识到 Android 的 Cursor 最多只能保存 1MB 的数据。我现在知道我应该将这些二进制 blob 存储在文件中,并且只引用 sqlite 数据库条目中的文件。
我需要升级数据库(该应用程序已经使用了一段时间)才能将这些二进制块移动到文件中。问题是某些用户的数据可能已经超过了 1MB 的限制,我无法从数据库中检索它(访问生成的 Cursor 以获取包含大 blob 的单行会引发 IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialize before accessing data from it)。
如何检索已存储在 sqlite 数据库中的大于 1MB Cursor 限制的二进制 blob?
【问题讨论】:
标签: android sqlite blob protocol-buffers database-cursor