电竞比分网-中国电竞赛事及体育赛事平台

分享

VFP文件遭損壞,簡單修復(fù)

 吾清 2011-09-05
A:如何修復(fù)被破壞的VFP表(*.dbf) 

----目前在我國,有相當(dāng)一部分正在運(yùn)行應(yīng)用程序是用VFP   編寫的,由于突然斷電、程序非法關(guān)閉等原因,經(jīng)常會導(dǎo)致VFP數(shù)據(jù)庫.DBF文件被破壞,如果數(shù)據(jù)庫被破壞了,用VFP打開數(shù)據(jù)庫.DBF時,會出現(xiàn) "notatable/dbf "錯誤提示,導(dǎo)致無法用VFP打開。 
----首先介紹一下VFP數(shù)據(jù)庫.DBF的文件結(jié)構(gòu): 
----VFP數(shù)據(jù)庫*.DBF的文件結(jié)構(gòu)由頭記錄和數(shù)據(jù)記錄組成,頭記錄定義該DBF的結(jié)構(gòu)并包含與該庫相關(guān)的其它信息。頭記錄由文件位置0字節(jié)開始。 
----數(shù)據(jù)庫頭部幾個關(guān)鍵字節(jié)含義如下:(注:庫文件中存儲整數(shù)時低位字節(jié)在前) 
----字節(jié)偏移說明 
----0   庫文件的版本類型 
----1-3   最近更新的日期(YYMMDD) 
----4-7   庫文件中記錄的個數(shù) 
----8-9   第一條記錄的起始位置 
----10-11   一條記錄的長度(包括刪除標(biāo)記) 
----其它字節(jié)的具體描述不在此贅述,可以參考有關(guān)部門書籍或者程序開頭注釋部分。 
----在實(shí)際工作中發(fā)現(xiàn),許多情況下數(shù)據(jù)庫錯誤都是由于記錄個數(shù)比實(shí)際記錄個數(shù)大1個,以至于數(shù)據(jù)庫無法用打開。 
----主要通過以下兩種辦法來對數(shù)據(jù)庫進(jìn)行修復(fù)。 

一、用Pctools、NU的Diskedit等工具軟件進(jìn)行恢復(fù): 

----運(yùn)行Pctools,選中無法打開的數(shù)據(jù)庫,按E文件進(jìn)入編輯功能,按F1切換顯示模式。 
----按F3進(jìn)行編輯,將開始的第5個字節(jié)值減1,按F5存儲,然后退出Pctools,啟動VFP,   發(fā)現(xiàn)被破壞的數(shù)據(jù)庫可以打開使用了。 
----由于許多操作者并不一定熟悉如何使用Pctools,因此我建議大家可以用比較熟悉的Excel程序根據(jù)下面的步驟來進(jìn)行數(shù)據(jù)庫的恢復(fù)。 

二、用Excel進(jìn)行恢復(fù)。 

----啟動Excel,選擇 "打開 "按鈕,出現(xiàn)打開對話框,在打開文件類型中選擇Dbase/VFP(*.DBF)文件類型,再選中被破壞的數(shù)據(jù)庫打開,這時不要做更改,只選擇 "保存 "按鈕,會出現(xiàn) "另存為 "對話框,仍選擇以原來文件名保存,會提示 "文件已經(jīng)存在,是否替換已有文件? ",選擇 "是 "。 
----然后選擇 "文件 "菜單上的 "關(guān)閉 ",會出現(xiàn)提示 "數(shù)據(jù)庫文件不是Excel格式,要保留修改嗎? 
----要保存為Excel格式,單擊 '是 ',然后在 '保存類型 '下拉列表框選 'Excel工作簿 '; 
----要用現(xiàn)有格式保存并替換原來的文件,單擊 '是 ',然后單擊 '保存 '; 
----要在關(guān)閉文件時維持現(xiàn)有格式并不作保存,單擊 '否 '。 " 
----由于我們并沒有對數(shù)據(jù)庫的記錄進(jìn)行改動,只是為了恢復(fù)數(shù)據(jù)庫,所以選擇最后一項 "在關(guān)閉文件時維持現(xiàn)有格式并不作保存 ",因此單擊 "否 ",退出Excel。 
----啟動VFP,再次打開數(shù)據(jù)庫文件,發(fā)現(xiàn)數(shù)據(jù)庫文件已可以被打開了,但是觀察數(shù)據(jù)庫的結(jié)構(gòu),會發(fā)現(xiàn)數(shù)據(jù)庫結(jié)構(gòu)中的索引不見了,不過數(shù)據(jù)庫的索引文件還存在。我們只需要給數(shù)據(jù)庫Add索引,并選擇原來的索引文件Open即可。 
----添加索引文件后退出數(shù)據(jù)庫結(jié)構(gòu)設(shè)置,并對數(shù)據(jù)庫重新索引一下,就可以繼續(xù)使用原   來被破壞的數(shù)據(jù)庫了。 

三、如果是VFP6的DBF,那么用VFP8打開試一試。如果是VFP8的DBF,那么用VFP6打開試一試 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多