0

我想从数据库中取出一个 blob。我得到这个错误。我是数据库新手,这是什么意思?

07-13 22:21:10.928: E/CursorWindow(13302): 需要增长: mSize = 1048576, size = 3279360, freeSpace() = 1048491, numRows = 1

看来我只有1MB。这是对数据库的限制,还是我的整个应用程序当前限制为 1MB 可用内存?

将 blob 插入数据库时​​我没有遇到问题。之后我关闭了数据库等......我很高兴,如果有人能给我一些地方,我可以看看。

最好的祝福,

帕特里克

4

3 回答 3

1

适用于CursorBLOB 数据的限制为 1MB。由于限制适用于Cursor,因此您不会看到它插入数据,而只会尝试访问它。

一般来说,将这么大的数据块放入数据库是一个坏主意。相反,您应该将大数据保存到内部或外部存储上的文件中,并将文件路径或 Uri 保存到数据库字段中。

于 2012-07-13T20:37:37.720 回答
1

在 SQLite 数据库中存储大文件是不好的做法。改为存储Uri指向文件的 a 。

于 2012-07-13T20:38:59.970 回答
0

这是因为您要保存的变量太大,光标无法处理

以我的日志摘录为例

07-08 10:39:51.324: W/CursorWindow(9207): Window is full: requested allocation 1249663 bytes, free space 398939 bytes, window size 2097152 bytes

我建议使用 callong 分离的方法分别调用 blob 或长字符串,因为我们不能保证 Android 操作系统本身只运行这个 App,另一个会消耗大量内存

于 2013-07-08T02:52:19.990 回答