У меня есть несколько пакетов SQL Server DTS, которые импортируют данные из базы данных FoxPro. До недавнего времени все работало нормально. Теперь сценарий, который импортирует данные из одной из таблиц FoxPro, выбрасывает около 470 000 записей в процессе импорта. Я просто вытаскиваю данные в таблицу с обнуляемыми полями varchar, поэтому я думаю, что это, должно быть, проблема со странными/корректными данными.
Какие инструменты вы бы использовали для поиска подобной проблемы?
К вашему сведению, вот ошибка, которую я получаю:
Данные для столбца источника 1 ('field1') недоступны. Ваш провайдер может требовать, чтобы все столбцы Blob были крайними справа в исходном наборе результатов.
В этой таблице не должно быть столбцов blob.
Спасибо за предложения. Я не знаю, точно ли это проблема коррупции. Я только что начал загружать FoxPro из моей подписки MSDN, так что я посмотрю, смогу ли я открыть таблицу. SSRS открывает таблицу, но просто задыхается, не успев просмотреть все записи. Я просто пытаюсь понять, с какой записью у него проблема.
Пробовали ли вы написать небольшую программу, которая просто копирует существующие данные в новую таблицу?
Также,
http://fox.wikis.com/wc.dll?Wiki~TableCorruptionRepairTools~VFP
Моя компания использует Foxpro для хранения довольно большого количества данных... По моему опыту, повреждение данных очень очевидно, когда таблица вообще не открывается. Есть ли у вас копия foxpro, чтобы открыть таблицу?
На 470,000 записи, которые вы, возможно, захотите, чтобы проверить, чтобы увидеть, если вы'вновь приближается к 2 гигабайт на FoxPro размер стола. Как я понимаю, записи все еще может быть там, но становятся недоступными после 2 точка гиг.
@Лэнс:
если у вас есть доступ к окну командной строки в 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
и т. д.
Использованию баз данных ремонт с моего сайта (www.shershahsoft.com) бесплатно (и всегда будет бесплатно).
Я разработал эту программу для восстановления поврежденных для FoxPro/FoxBase/файлы dBase. Программа очень быстрая. Он будет ремонт 1 ГБ стол в менее чем за минуту.
Вы можете азнамения файлы, папки и программы. Как вы запустите программу, она отметит все поврежденные файлы и нажав кнопку "Проверить", и ремонт или ремонт, это ремонт всех поврежденных файлов. Кроме того, он создаст папки "и CorruptData" в папки, в которых существуют фактические данные, и будет держать копии есть поврежденные файлы.
Одна вещь, чтобы помнить, всегда работать CheckDsk Windows на диски, на которых хранятся файлы. Причиной, когда записи будут скопированы в таблицу и происходит сбой питания, существует потерянных кластеров Windows, которые конвертирует файлы во время CheckDsk. После этого RepairDatabases будет делать работу за вас.
Я использовал множество платных и бесплатных программ, которые ремонт столов, но всех таких программ уходят лишние записи в таблицах с персонажами embiguit (и они тоже потреблял). Русский язык нужно найти и удалить такие записи вручную. Но базы данных ремонт фактически восстанавливает оригинальные записи, не требуется никаких дальнейших действий. Единственное действие, которое вам нужно, это переиндексация файлов.
В процессе ремонта несколько раз файл открыть диалоговое окно, которое попросит, чтобы найти компактный индексный файл для таблицы с индексами. Вы можете нажать "отмена" диалоговое окно в этот момент, то таблица будет отремонтирована, тем не менее, вы должны переиндексировать файл позже. (это диалоговое окно может появиться несколько раз в зависимости от количества поврежденных индексов.)