主题:打开VFP数据库,显示"不是一个表"如何解决?
hyc6970
[专家分:0] 发布于 2009-12-14 22:58:00
原来用USE DA.DBF可以打开数据库,但不知什么时候再用USE打开该数据库时,显示"不是一个表",不知如何解决?请各位帮忙.
回复列表 (共9个回复)
沙发
ihorse [专家分:970] 发布于 2009-12-15 18:49:00
表文件的文件头结构被破坏了。
板凳
akun868 [专家分:150] 发布于 2009-12-16 07:31:00
已损坏或已加密
3 楼
kosung [专家分:910] 发布于 2010-01-03 12:01:00
强烈建设版主们清理一下吧
4 楼
junshi_network [专家分:0] 发布于 2010-02-03 19:26:00
试试这个
dbffilename=UPPER(ALLTRIM(GETFILE("dbf" )))
If Empty(dbffilename)
Return
Endif
hhandle=FOPEN(dbffilename,2)
IF hhandle>0
fbyte=FREAD(hhandle,1)
=FSEEK(hhandle,0)
IF fbyte=CHR(0) .OR. fbyte=CHR(26)
=FWRITE(hhandle,IIF(fbyte==CHR(0),CHR(48),CHR(48)))
=FCLOSE(hhandle)
ENDIF
ENDIF
RETURN
5 楼
北京惬意 [专家分:1330] 发布于 2010-02-03 19:43:00
VFP掉电坏表,不知其它数据库如何?
6 楼
0901chang [专家分:10660] 发布于 2010-02-04 00:37:00
[quote]VFP掉电坏表,不知其它数据库如何?[/quote]
5楼,你的表述有错误,应该是:可能因为断电引起vfp表损坏,不是《VFP掉电坏表》。
不管是数据库还是文件,若在windows写磁盘时断电,此时写入的内容将不受控制,因此可能损坏文件,数据库也是文件。有人说,sql数据库的事物处理可以避免意外断电引起的文件损坏,那是不可能的。
若数据库能避免意外断电损坏文件,那是因为该数据库在后台有实时备份功能,发现损坏时自动修复。大型数据库可以利用实时备份的数据实现数据的回滚:来恢复某个时间的数据。
重要的系统,硬件都配置为双系统,后备电源也是高质量的,不存在意外断电问题,除非是遇到灾难性的事故。
7 楼
北京惬意 [专家分:1330] 发布于 2010-02-04 05:08:00
听君一席话,胜读十年书。
8 楼
songheping [专家分:0] 发布于 2010-04-17 13:14:00
打开AJZDYLLI.DBF文件,提示不是一个表,如果知道密码,如何去掉密码
9 楼
dbfox [专家分:490] 发布于 2010-04-19 19:50:00
[quote]强烈建设版主们清理一下吧[/quote]
什么意思,kosung?
若发现此问题,赶紧在同一文件夹里寻找同名的.bak文件,将原表改个名字,将此文件的后缀改为.dbf,也许能挽回失损或把损失降到最低.
我来回复