当前位置: 代码迷 >> VFP >> 【征集方案】怎么解决因错误关机导致表文件损坏的有关问题
  详细解决方案

【征集方案】怎么解决因错误关机导致表文件损坏的有关问题

热度:10094   发布时间:2013-02-26 00:00:00.0
【征集方案】如何解决因异常关机导致表文件损坏的问题
系统运行中,异常断电,导致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就可打开坏表。这时,只要以独占方式打开坏表,随便加个记录,执行存盘,即可修复坏表。该方法经本人多次测试,毫无问题。
------解决方案--------------------------------------------------------
是系统信息表,仅一条记录,还不如直接在程序中建个数组赋值,再也不用担心表损坏了。
  相关解决方案