2008-08-13 3 views
3

У меня есть пакеты DTS SQL Server, которые импортируют данные из базы данных FoxPro. До недавнего времени это работало нормально. Теперь скрипт, который импортирует данные из одной из таблиц FoxPro, выдает около 470 000 записей в импорте. Я просто вытаскиваю данные в таблицу с полями с нулевым varchar, поэтому я думаю, что это должна быть проблема с weird/corrupt data.Какие инструменты данных FoxPro можно использовать для поиска поврежденных данных?

Какие инструменты вы бы использовали для отслеживания такой проблемы?

FYI, это ошибка, я получаю:

данных для исходного столбца 1 ('FIELD1') не доступны. Ваш провайдер может потребовать, чтобы все столбцы Blob были правыми в исходном наборе результатов.

В этой таблице не должно быть столбцов blob.


Спасибо за предложения. Я не знаю, действительно ли это проблема коррупции. Я только начал загружать FoxPro из моей подписки MSDN, поэтому я посмотрю, смогу ли я открыть таблицу. SSRS открывает таблицу, она просто задыхается, прежде чем запускать все записи. Я просто пытаюсь выяснить, с какой записью у него проблемы.

ответ

4

Cmrepair является отличной бесплатной утилитой для восстановления поврежденных файлов .dbf.

1

Моя компания использует Foxpro для хранения довольно немного данных ... По моему опыту, повреждение данных очень очевидно, при этом таблица не открывается в первую очередь. У вас есть копия foxpro, чтобы открыть таблицу?

0

@Lance:

если у вас есть доступ к визуальному окну командной строки 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

В 470000 Recor ds, вы можете проверить, подходит ли вам ограничение на 2 гигабайта на размер таблицы FoxPro. Насколько я понимаю, записи все еще могут быть там, но становятся недоступными после 2-х гигабайт.

0

Используйте бесплатные базы данных с моего сайта (www.shershahsoft.com) БЕСПЛАТНО (и всегда будет БЕСПЛАТНО).

Я разработал эту программу для восстановления поврежденных файлов Foxpro/FoxBase/Dbase. Программа очень быстрая. Он восстановит таблицу 1 ГБ менее чем за минуту.

Вы можете присоединить файлы и папки к программе. Когда вы запустите программу, она пометит все поврежденные файлы и нажав кнопку «Восстановить» или «Проверить и восстановить», она восстановит все поврежденные файлы.Более того, он создаст папки «CorruptData» в папках, где существуют фактические данные, и сохранит там копии поврежденных файлов.

Следует иметь в виду, что всегда запускайте Windows CheckDsk на дисках, где хранятся файлы. Причина, когда записи копируются в таблицу и происходит сбой питания, существуют потерянные кластеры, которые Windows преобразует в файлы во время CheckDsk. После этого RepairDatabases выполнит эту работу за вас.

Я использовал много платных и бесплатных программ, которые ремонтируют таблицы, но все такие программы оставляют дополнительные записи в таблицах с эмбиентами (и они также требуют много времени). Программисту необходимо найти и удалить такие записи вручную. Но Repair Databases фактически восстанавливает исходные записи, вам не нужны дальнейшие действия. Единственное, что вам нужно - переиндексировать ваши файлы.

В процессе ремонта несколько раз появляется диалоговое окно «Открыть файл», в котором предлагается найти компактный индексный файл для таблицы с индексом. Вы можете нажать отменить диалог в этой точке, таблица будет восстановлена, однако вам нужно будет повторно проиндексировать файл позже. (этот диалог может появляться несколько раз в зависимости от количества поврежденных индексов.)

Смежные вопросы