2008-08-13 86 views
3

我有一些從FoxPro數據庫導入數據的SQL Server DTS包。直到最近這個工作都很好。現在,從其中一個FoxPro表導入數據的腳本將導出大約470,000條記錄。我只是將數據拖入一個帶有可爲空的varchar字段的表中,所以我認爲它必定是一個奇怪的/損壞的數據問題。我可以使用哪些FoxPro數據工具來查找損壞的數據?

你會用什麼工具來追蹤這樣的問題?

僅供參考,這是我得到的錯誤:

源列1(「字段1」)

數據不可用。您的提供者可能要求所有Blob列在源結果集中最右邊。

此表中不應該有任何blob列。


感謝您的建議。我不知道這是否是腐敗問題。我剛開始從我的MSDN訂閱下載FoxPro,所以我會看看我是否可以打開表格。 SSRS打開表格,它在運行所有記錄之前就會窒息。我只是想弄清楚哪個記錄有問題。

回答

4

Cmrepair是一個優秀的免費軟件工具來修復損壞的.DBF文件。

1

我的公司使用Foxpro存儲相當多的數據......根據我的經驗,數據損壞非常明顯,表格無法打開。你有一份foxpro打開桌子嗎?

0

@Lance:

如果你有機會到Visual FoxPro中的命令行窗口,鍵入:

SET TABLEVALIDATE 11 
USE "YourTable" EXCLUSIVE && If the table is damaged VFP must display an error here 
PACK && To reindex the table and deleted "marked" records 
PACK MEMO && If you have memo fields 

這樣做後,該表的結構必須已經有效的,如果你想看到的字段與無效數據,你可以嘗試:

SELECT * FROM YourTable WHERE EMPTY(YourField) && All records with YourField empty 
SELECT * FROM YourTable WHERE LEN(YourMemoField) > 200 && All records with a long memo field, there can be corrupted data 

1

在47萬的錄音功您可能想檢查一下,看看您是否接近FoxPro表格大小的2千兆字節限制。據我瞭解,記錄仍然可以在那裏,但2點後變得無法訪問。

0

從我的網站(www.shershahsoft.com)免費使用修復數據庫(並且將永遠免費)。

我設計了這個程序來修復損壞的Foxpro/FoxBase/Dbase文件。該計劃非常快速。它將在不到一分鐘內修復1 GB的表格。

您可以將文件和文件夾設爲程序。當您啓動程序時,它會標記所有損壞的文件,並通過單擊修復或檢查並修復按鈕,它將修復所有損壞的文件。此外,它將在實際數據存在的文件夾中創建一個文件夾「CorruptData」,並將保留損壞文件的副本。

有一點要記住,總是在存儲文件的驅動器上運行Windows CheckDsk。原因是,當記錄被複制到表中併發生電源故障時,存在丟失的羣集,Windows在CheckDsk中將其轉換爲文件。之後,RepairDatabases將爲您完成這項工作。

我已經使用了許多有償和免費的程序來修復表,但是所有這些程序都會在包含字符的表中留下額外的記錄(並且它們也很耗時)。程序員需要手動查找和刪除這些記錄。但修復數據庫實際上恢復了原始記錄,您不需要進一步的操作。您需要的唯一操作是重新索引文件。

在修復過程中,出現一些文件打開對話框,它要求爲具有indeces的表定位緊湊索引文件。您可以點擊取消對話框,表格將被修復,但是,您需要稍後重新編制文件。 (根據損壞的數量,此對話框可能會出現多次。)