如何修复被破坏的Foxpro数据库
-目前在国内,相当多的运行应用都是用Foxpro编写的。由于突然停电,程序非法关闭等原因,Foxpro数据库。DBF的档案经常被销毁。如果数据库被破坏,当打开数据库。用Foxpro的DBF,会出现“notable/DBF”的错误提示,导致用Foxpro无法打开。
-首先介绍一下Foxpro数据库的文件结构。DBF:
-FoxPro数据库*的文件结构。DBF由标题记录和数据记录组成。标题记录定义了DBF的结构,并包含与数据库相关的其他信息。头从文件位置的字节0开始。
-数据库头中关键字节的含义如下:(注:在库文件中存储整数时,低位字节优先)
-字节偏移量描述
-0库文件的版本类型
-1-3上次更新日期(yymmm -8-9第一条记录的起始位置
-10-11记录的长度(包括删除标记)
-其他字节的详细信息请参见开头的注释
-在实际工作中发现,很多情况下,数据库错误都是因为记录数比实际数多了一条,以至于无法用打开数据库。
-有两种方法可以修复数据库。
1.使用Pctools、NU的Diskedit以及其他工具和软件进行恢复:
-运行Pctools,选择打不开的数据库,按E file进入编辑功能,按F1切换显示模式。
-按F3编辑,第5个字节值减1,按F5保存,然后退出Pctools,启动Foxpro,发现损坏的数据库可以打开使用。
-由于很多操作人员不一定熟悉如何使用Pctools,我建议您可以使用熟悉的Excel程序,按照以下步骤恢复数据库。
第二,用Excel还原。
-启动Excel,选择“打开”按钮,打开对话框出现。选择Dbase/Foxpro(*。DBF)文件类型,然后选择要打开的损坏的数据库。此时不要做任何修改,只需选择“保存”按钮,就会出现“另存为”对话框。如果仍然选择用原文件名保存,会提示“文件已经存在,是吗?,选择“是”。
-然后选择“文件”菜单上的“关闭”,会提示“数据库文件不是Excel格式,是否保持修改状态?
-要保存为Excel格式,请单击“是”,然后在“保存类型”下拉列表框中选择“Excel工作簿”。
-要保存并用现有格式替换原始文件,请单击“是”,然后单击“保存”;
-要在关闭文件时保留现有格式而不保存,请单击“否”。"
-由于我们没有对数据库的记录进行任何更改,只是为了恢复数据库,我们选择了最后一项“关闭文件时保持现有格式不保存”,因此单击“否”退出Excel。
-启动Foxpro,再次打开数据库文件,发现数据库文件可以打开。但是,通过观察数据库的结构,你会发现数据库结构中的索引是缺失的,但是数据库的索引文件仍然存在。我们只需要向数据库添加一个索引,并选择打开原始索引文件。
-添加索引文件后,退出数据库结构设置,重新索引数据库,可以继续使用原来损坏的数据库。
0条评论