编程论坛
注册
登录
编程论坛
→
VFP论坛
求助:数据表头损坏,怎么修复
XUFN
发布于 2021-08-03 12:53, 3384 次点击
帖子列表太多,不知道之前有没有人问过类似问题,由于电脑干活时间死了,正在作业的应用程序强行退出,结果后面再运行时,有张表打不开了,能有办法恢复吗?好像有个SET命令是可以的,但我忘记了,先谢谢大侠了
只有本站会员才能查看附件,请
登录
6 回复
#2
sdta
2021-08-03 13:25
可能是 SET TABLEVALIDATE TO 命令
或者复制与表同名的*.BAK文件试试
#3
厨师王德榜
2021-08-03 13:26
看看是不是这些记录?
只有本站会员才能查看附件,请
登录
#4
XUFN
2021-08-03 13:35
楼上的太厉害啦,谢谢谢谢!
输入
SET TABLEVALIDATE TO 0
然后就可以打开了
#5
XUFN
2021-08-03 13:36
也谢谢~厨师王德榜~
#6
kimhoo
2021-08-15 21:09
因突然断电或不明原因自动重启后,打开某.dbf文件时,如
USE h:\gsdbf\stock20190429.dbf EXCLUSIVE
提示∶'h∶\qsdbf\stock20190429.dbf'已损坏,该表在再次使用前必须经过修复
用的是Foxpro 9.0 SP2可在命令窗口键入∶
CLOSE ALL
SET TABLEVALIDATE TO 0 &&不进行验证
USE h\qsdbf\stock20190429.dbf
COPY TO h\qsdbf\stock20200215.dbf &&可见自动复制的进度显示
SET TABLEVALIDATE TO
#7
吹水佬
2021-08-16 11:01
也可以试试修改实际记录数,找回丢失数据记录。
程序代码:
cDBF
=
FILETOSTR("data_CL.dbf")
nRecHead
=
CTOBIN(SUBSTR(cDBF,
9
,
2
),"RS2")
+
1
nRecSize
=
CTOBIN(SUBSTR(cDBF,
11
,
2
),"RS2")
nRecCount
=
INT
((
LEN
(SUBSTR(cDBF,nRecHead))
-
1
)
/
nRecSize)
cDBF
=
STUFF
(cDBF,
5
,
4
,BINTOC(nRecCount,"RS4"))
STRTOFILE(cDBF,"data_CL修复.dbf")
1