【问题标题】:sqlite nomem error on integrity check完整性检查时的 sqlite nomem 错误
【发布时间】: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 错误。我要求增加应用程序堆的大小。明天就会清楚是不是因为它。

标签: sqlite out-of-memory database-integrity


【解决方案1】:

将堆内存大小增加到 1.5M 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 2014-03-24
    相关资源
    最近更新 更多