系统运行中,异常断电,导致DBF文件损坏。这是一个系统状态表,随系统运行一直打开。该如何让系统自行恢复?
我计划是这样的:
1、系统表为sys,同时有一个备份,例如:sys1
2、系统启动时,若SYS表损坏,则将SYS1拷贝为SYS
3、系统启动后,若该表发生设置参数变化,则同时更新备份表
copy to sys1
其他有没有更好的方案?
------解决方案--------------------------------------------------------
一个古老的 FAQ 了
只要有添\删\改操作,立即执行强制写盘操作,只要表不是特别大,一般都够了
if append\replace\delete\insert\update sys
flush in sys force
试试还会损坏这个表吗?
用你的方法作为辅助防范方案
------解决方案--------------------------------------------------------
没有,只要对表有修改,要及时“真正”的存盘(Flush 命令 方法见1楼),基本就不会有坏表了。
------解决方案--------------------------------------------------------
这情况我也是,就是只打开表,当程序意外挂了,就有表坏掉了,只能备份顶上!习惯了!
------解决方案--------------------------------------------------------
对于因断电和对方突然关机造成的表损坏,其修复实际上是很简单的。在vfp8以上版本提供有SET TABLEVALIDATE TO 命令。其用法如下:
SET TABLEVALIDATE TO [nLevel]nLevel 指定表有效性级别。系统默认值为3当因以上原因出现坏表时,设置SET TABLEVALIDATE TO 0就可打开坏表。这时,只要以独占方式打开坏表,随便加个记录,执行存盘,即可修复坏表。该方法经本人多次测试,毫无问题。
------解决方案--------------------------------------------------------
是系统信息表,仅一条记录,还不如直接在程序中建个数组赋值,再也不用担心表损坏了。