2012-01-04 34 views
0

我正在研究C#應用程序讀取/保存一些舊的dbf文件中的數據。 (使用Microsoft Visual FoxPro驅動程序) 直到最近,我還沒有遇到任何問題,當我試圖查詢我以前沒有使用過的表時,我收到了此錯誤消息。這個表有點特別,因爲它有500多列,我懷疑這可能與它有關 - 但我迄今爲止沒有搜索到任何指示,導致任何問題。Foxpro - 錯誤15:「不是表」

我看過this document並檢查頭記錄計數是否與實際計數(1記錄)匹配; 這篇文檔是迄今爲止我發現的唯一很好的技巧,它不需要任何沉重的dbf修復工具。

我試過使用Microsoft Visual FoxPro和VFPOLEDB驅動程序,它們都給出了或多或少相同的錯誤消息。

我試過通過TableValidate = 0命令,但沒有成功。

有沒有人有任何解決方法/解決此問題的方法,最好使用C#。

+0

表所在的dbf的大小是多少? – 2012-01-04 09:23:49

+0

感謝您的輸入 - dbf的大小是25KB。 – Robban 2012-01-04 09:58:19

+0

我讀過,導致錯誤的原因可能是超過2GB的dbf大小,這就是爲什麼我問。其他網站說,數據庫已損壞,並使用程序來修復dbf將刪除錯誤。您可以對數據庫進行備份並在其上嘗試修復程序。 – 2012-01-04 10:03:57

回答

0

如果表損壞,您可以使用CmRepair.app來修復它。該程序是一個Visual Foxpro 8應用程序(不是一個編譯的.EXE),所以你需要VFP來執行它。

如果您沒有安裝VFP,您可以下載我爲在未安裝VFP的客戶中執行VFP腳本和.APP而製作的utility program。 VFP8運行時可用here。然後你用runner CmRepair.app運行程序並修復表格。

祝你好運!

4

VFP表格不支持500列,所以這不是VFP表格。你需要找出它是什麼樣的表,並使用適當的驅動程序來打開它。

0

從Tamar的評論中,我想到了另一個使用.DBF文件格式的應用程序數據庫...... Clipper。下面是描述了他們的表容量的鏈接..

Apollo database - (Clipper)

這可能是一個缺失的環節,你正在尋找。