2013-08-05 110 views
3

我有一个嵌入式系统,它使用C/C++ API与编译版本的SQLite v3。我在pragma integrity_check(10);上遇到了SQLITE_NOMEM错误。我问底层的系统程序员,堆大小是多少,他告诉我这个值是500k。还有一个4096的SQL矢量大小。完整性检查sqlite nomem错误

我有什么方法可以摆脱这种情况?除了将数据库分成多个数据库?

+0

'pragma integrity_check'是一个管理功能,不应在正常操作期间运行。 (并且在检查失败时该怎么办?) –

+0

我正在恢复损坏的数据库上的备份文件。现在它发生,即使这是一个NOMEM错误。我想解决这个问题。 –

+0

尝试在测试数据库上的编译指示。使用sqlite3命令。从那里开始寻找具体导致失败的原因。 (SQLite环境有可能以某种方式被破坏。) –

回答

1

将堆内存大小增加到1.5M可解决此问题。