SQLite:如何以编程方式修复格式错误的数据库

时间:2015-03-10 09:55:25

标签: c database sqlite

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

第一个进程将在db中插入(大约每秒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语言编写的。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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

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