sqlite数据库被我不小心覆盖了,有没有办法恢复原来的数据?

sqlite数据库被我不小心覆盖了,有没有办法恢复原来的数据?,第1张

数据被覆盖是没有办法恢复的。任何办法也没有。如果是被格式化或者是被删除还有办法。因 为他们的系统动作的机理是不一样的。格式化或删除文件只是把这个文件的有关引导文件或者说把它的有关“目录”给删除了,让系统知道这文件“已不用”,那么这个文件所在的空间就“相当于”已经清空,实际上原来的文件的信息都还在。系统再进行存储时,就可以把新的文件写入这个地方。而覆盖就不一样了,是新的文件把这个地方已经“占用”了,原来的文件的信息就会由于新文件的写入而消失。所以覆盖是没有办法恢复的。

估计文件点损坏

SQLite数据库错误:The database disk image is malformed 解决方法:

今天一客户使用我们软件时突然停电,再次启动软件查询SQLite数据库报 The database disk image is malformed 错误。

百度一下基本上全部是http://www.cnblogs.com/yelaiju/archive/2011/03/27/1996863.html这个方法,但这个方法对于较大的数据库根本无法解决,我遇到的数据文件有58M,导出SQL文件61M,在执行SQL时一直处于卡死状态,证明是不可行的,可能对于小的数据文件有用,没有测试过。

最后这个问题还是解决了,我的解决方法是:

下载SQLite Expert Professional,一定要Professional版(收费)的,Personal版(免费)的没有修复功能。

这里有一个绿色破解版的可以下载:http://url.cn/JVyaU5,下载之后直接解压就可以用了。

双击SQLiteExpertPro.exe,启动SQLite Expert Professional

打开要修复的sqlite数据文件,如果出现下图的提示:

说明数据库文件存在密码,点击"OK",关闭提示,在“db”上点击右键:

选择“Enter Encryption Key”:

输入数据库密码后,点击“OK”,这样数据库已经打开了,小红"x"变成了绿色的小箭头,再“db”上点击右键,选择“Repair”,如下图:

点击“Repair”后d出对话框如下图:

在 New file 那里输入修复后数据库文件的名字,点击“Start”,就开始修复了,这里输入的是db_repaired,用db_repaired改名后替换原来的db,程序已经可以正常运行了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6928096.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-30
下一篇2023-03-30

发表评论

登录后才能评论

评论列表(0条)

    保存