我想从数据库中获取一个blob。我收到这个错误。我是数据库新手,这是什么意思?
07-13 22:21:10.928:E / CursorWindow(13302):需要增长:mSize = 1048576,size = 3279360,freeSpace()= 1048491,numRows = 1
似乎我只有1MB。这是对数据库的限制,还是我的完整应用目前仅限于1MB可用内存?
我没有遇到将blob插入数据库的问题。然后我关闭了数据库等...我很高兴,如果有人可以给我一些地方,我可以看看。
最诚挚的问候,
帕特里克答案 0 :(得分:1)
1MB限制适用于Cursor
BLOB数据。由于该限制适用于Cursor
,因此您不会看到它插入数据,只会尝试访问它。
通常,将数据块放入数据库中是一个坏主意。相反,您应该将大数据保存到内部或外部存储上的文件中,并将文件路径或Uri保存到数据库字段中。
答案 1 :(得分:1)
在SQLite数据库中存储大文件是不好的做法。存储指向该文件的Uri
。
答案 2 :(得分: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操作系统本身只运行此应用程序,而另一个可以消耗大量内存