我在 Android 应用程序的 sqlite 数据库中存储了大块的二进制数据(protobufs),却没有意识到 AndroidCursor
最多只能保存 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
.
如何检索Cursor
已存储在 sqlite 数据库中的大于 1MB 限制的二进制 blob?