完整性检查时的 sqlite nomem 错误
Posted
技术标签:
【中文标题】完整性检查时的 sqlite nomem 错误【英文标题】:sqlite nomem error on integrity check 【发布时间】:2013-08-06 07:15:56 【问题描述】:我有一个嵌入式系统,它使用 C/C++ api 和 SQLite v3 的编译版本。我在pragma integrity_check(10);
上收到SQLITE_NOMEM
错误。我问底层系统程序员应用程序堆大小是多少,他告诉我值是 500k。还有一个 SQL 向量大小为 4096。
我有什么办法可以摆脱这种情况?除了将数据库拆分为多个?
【问题讨论】:
pragma integrity_check
是一个管理功能,不应在正常操作期间运行。 (当检查失败时你该怎么办?)
我正在恢复损坏数据库上的备份文件。现在它发生了,即使它是一个 NOMEM 错误。我想解决这个问题。
在测试数据库上尝试编译指示。使用 sqlite3 命令。从那里开始寻找导致失败的具体原因。 (SQLite 环境可能以某种方式搞砸了。)
它会自动对 4 个数据库进行完整性检查,并且只在较大的数据库上给出 NOMEM 错误。我要求增加应用程序堆的大小。明天就会清楚是不是因为它。
【参考方案1】:
将堆内存大小增加到 1.5M 解决了这个问题。
【讨论】:
以上是关于完整性检查时的 sqlite nomem 错误的主要内容,如果未能解决你的问题,请参考以下文章