【问题标题】:SQLite: How to repair a malformed database programmaticallySQLite:如何以编程方式修复格式错误的数据库
【发布时间】:2015-05-11 16:58:24
【问题描述】:

我将 SQLite3 用于嵌入式项目。 我必须并发访问 sqlite 数据库的进程。

第一个进程将在数据库中插入(大约每秒 50 次)。 第二个进程将尝试从数据库中删除(大约每秒 100 个)。

基本上,我的第一个进程将从网络收集数据,并将其存储在数据库中。 第二个将从数据库中弹出,使用 GPRS 连接发送数据。

我尝试每秒弹出 100 个元素(而我每秒只存储 50 个元素)的原因是为了赶上,以防 GPRS 连接丢失。

在某个随机时刻,我的数据库格式错误:

sqlite> pragma integrity_check;
Error: database disk image is malformed

我的第二个进程循环显示此消息:

Failed to get table: database disk image is malformed

有什么方法可以以编程方式清理数据库,以防它出现格式错误?我的程序是用 C 编写的。

感谢您的帮助

【问题讨论】:

标签: c database sqlite


【解决方案1】:

如果有自动修复损坏的机制,SQLite 已经在使用它了。

删除数据库文件(并从备份中恢复最后一个副本,如果有的话)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多