Сведения о вопросе

HOLY

03:06, 15th August, 2020

Теги

database   foxpro    

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

Просмотров: 534   Ответов: 6

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

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

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

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

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


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



  Сведения об ответе

lats

19:27, 4th August, 2020

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


  Сведения об ответе

lesha

09:56, 7th August, 2020

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

Также,

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


  Сведения об ответе

FAriza

12:32, 28th August, 2020

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


  Сведения об ответе

прога

00:23, 10th August, 2020

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


  Сведения об ответе

appple

01:20, 18th August, 2020

@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

и т.д.


  Сведения об ответе

ASER

18:42, 28th August, 2020

Используйте базы данных восстановления с моего сайта (www.shershahsoft.com) для FREE (и всегда будет FREE).

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

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

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться