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

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

Какие инструменты вы бы использовали, чтобы отследить такую ​​проблему?

К вашему сведению, это ошибка, которую я получаю:

Данные для исходного столбца 1 ('field1') недоступны. Ваш поставщик может потребовать, чтобы все столбцы BLOB-объектов были самыми правыми в исходном наборе результатов.

В этой таблице не должно быть столбцов больших двоичных объектов.


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

13.08.2008 19:51:02
6 ОТВЕТОВ

Вы пытались написать небольшую программу, которая просто копирует существующие данные в новую таблицу?

Также,

http://fox.wikis.com/wc.dll?Wiki~TableCorruptionRepairTools~VFP

1
13.08.2008 19:58:04

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

4
13.08.2008 20:34:58

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

1
14.08.2008 01:10:07

@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

и т.п.

0
14.08.2008 12:39:24

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

1
14.08.2008 15:28:39

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

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

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

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

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

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

0
19.12.2012 19:39:04