2008-08-13 138 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的表定位紧凑索引文件。您可以点击取消对话框,表格将被修复,但是,您需要稍后重新编制文件。 (根据损坏的数量,此对话框可能会出现多次。)