关于突然断电造成数据库损坏的问题

arfa100 2006-12-12 04:34:59
我写了一个程序,后台用ACCESS2000数据库,拿到县里用。
因为有些县会经常断电,十次就有六七次会造成数据库损坏,需要修复。

想请教高人,断电造成数据库损坏是ACCESS本身的原因,还是我的程序代码有问题,应该如何解决呢?

谢谢~
...全文
810 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
蔡健常熟 2006-12-13
  • 打赏
  • 举报
回复
进入程序打开数据库前先用修复压缩命令对数据库整理下,这样即使损坏,修复后也能正常使用,使系统可用性提高。
DBEngine.RepairDatabase App + "\Maindb.mdb" '修复
DBEngine.CompactDatabase App + "\Maindb.mdb" '压缩
以上DBEngine对象需要引用Microsoft DAO 3.51 或 Microsoft DAO 3.6 以上版本
xayzmb 2006-12-13
  • 打赏
  • 举报
回复
1.操作时再打开连接.......
2.每次(或每天第一次)打开程序时,用COPY的方法备份一个ACCESS文件到另一处.....
熊孩子开学喽 2006-12-13
  • 打赏
  • 举报
回复
ACCESS数据库本身也是一个文件,当你在对数据库进行读写的时候断电,造成文件损坏,数据库当然也就坏了. 这一点其实用任何数据库都是无法避免的.
但是楼主可以注意一下,尽量将所有的设计到数据库内容更新的代码都集中在一起,这样就可以避免记录在修改状态下断电的几率的.
比如:添加记录
A:很差的方法: 在用户进行添加记录的时候,先ADDNEW,然后等待用户一个一个字段输入,等用户按确定之后再UPDATE.
原因:记录打开的时间太长,用户的输入时间是无法预料的.因此只要是在程序运行中断电,那数据库被破坏几乎就是必然的.
好的方法:在用户进行添加记录的时候不对数据库进行任何操作,(但是可以做一些比如将焦点移动到第一个字段的TEXT控件上去等等,也显得程序操作更友善),在用户按"确定"的时候才ADDNEW,写字段内容,再UPDATE,由于这个过程的时间非常短,所以安全性也就更大了.
当然,对数据记录的修改也是同样道理.
如果这样还正好赶上断电,那智能怪楼主的RP太差了.呵呵
最后,还可以对数据库定期备份,ACCESS的好处也体现出来了,程序结束的时候断开数据库联结再,一个文件拷贝语句就行了.这样即使遭遇不幸,最多也只是最后一次操作白做而已,减少了损失.
行云边 2006-12-12
  • 打赏
  • 举报
回复
那就使用sqlserver数据库好了。sql server不容易坏,即使损坏,也可以根据日志恢复的。
guyehanxinlei 2006-12-12
  • 打赏
  • 举报
回复
我也遇到过!
hzybc 2006-12-12
  • 打赏
  • 举报
回复
对数据库操作时,用事务
1、断电导致数据库文件损坏。 2、企业管理器误删除数据表记录,账套管理器删除。 3、并闩锁错误 格式化 误删除后导致软件不能使用的情况。 4、普通数据恢复软件恢复出来的数据库不能使用的情况,我们会会从碎片提取修复。 5、系统表损坏、索引错误、误删除数据库表、删除记录的数据找回。 6、、系统崩溃只剩下Sqlserver数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复。 7、SqlServer数据文件内部存在坏页情况下的恢复。 8、在Sql Server运行在简单日志模式、完全日志模式或者大容量日志记录模式下数据被误(drop、delete、truncate)删除表恢复,updata后的数据恢复等。 9、Sql Serve文件无法附加情况下的数据恢复。 10、Sql Server数据库被标记为可疑,不可用等情况。 11、Sql Server数据库SysObjects等系统表损坏无法正常应用情况下的恢复。 12、Sql Server数据库只有数据文件 没有任何日志的情况下的恢复。 13、Sql Server2000、Sql Server2005、SQL2008数据库master数据库损坏而无法正常运行情况下的恢复。 14、Sql server还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复。 15、可恢复因硬盘坏道造成数据库损坏。 16、可修复日志收缩或突然断电后的数据库。 17、可从SQL数据库备份文件BAK中恢复完整数据库。 18、磁盘阵列上的SQL SERVER数据库被误格式化等情况下的数据库恢复。 19、数据库无法安装、帮助重新安装数据库。 20、无法读取并闩锁页修复。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧