回 帖 发 新 帖 刷新版面

主题:打开VFP数据库,显示"不是一个表"如何解决?

原来用USE DA.DBF可以打开数据库,但不知什么时候再用USE打开该数据库时,显示"不是一个表",不知如何解决?请各位帮忙.

回复列表 (共9个回复)

沙发

表文件的文件头结构被破坏了。

板凳

已损坏或已加密

3 楼

强烈建设版主们清理一下吧

4 楼

试试这个

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 楼

VFP掉电坏表,不知其它数据库如何?

6 楼

[quote]VFP掉电坏表,不知其它数据库如何?[/quote]
5楼,你的表述有错误,应该是:可能因为断电引起vfp表损坏,不是《VFP掉电坏表》。

不管是数据库还是文件,若在windows写磁盘时断电,此时写入的内容将不受控制,因此可能损坏文件,数据库也是文件。有人说,sql数据库的事物处理可以避免意外断电引起的文件损坏,那是不可能的。

若数据库能避免意外断电损坏文件,那是因为该数据库在后台有实时备份功能,发现损坏时自动修复。大型数据库可以利用实时备份的数据实现数据的回滚:来恢复某个时间的数据。

重要的系统,硬件都配置为双系统,后备电源也是高质量的,不存在意外断电问题,除非是遇到灾难性的事故。

7 楼

听君一席话,胜读十年书。

8 楼


打开AJZDYLLI.DBF文件,提示不是一个表,如果知道密码,如何去掉密码

9 楼

[quote]强烈建设版主们清理一下吧[/quote]
什么意思,kosung?

若发现此问题,赶紧在同一文件夹里寻找同名的.bak文件,将原表改个名字,将此文件的后缀改为.dbf,也许能挽回失损或把损失降到最低.

我来回复

您尚未登录,请登录后再回复。点此登录或注册