Как прочитать файл VFP .dbf

Мне нужно прочитать два файла .dbf, которые пришли с сервера VFP в SQL, и манипулировать ими. Они лежат в папке на сервере. Во-первых, я установил драйвер VFPOLEDB, драйвер ODBC и его обновление. Я успешно создал связанный сервер со свободными таблицами и протестировал его в SQL, и он говорит, что соединение в порядке, и там есть вещи. Я до сих пор не могу даже просмотреть файлы. Кто-нибудь видит что-то не так с моим кодом? Или какие-нибудь советы? Пример кода известного рабочего кода? Я нашел много примеров в Интернете, но когда я применяю много часов, потраченных на их модификацию, они все равно не работают.

Вот мой код:

Select * From OPENQUERY(LINKEDSVR, 'Select * from employee.dbf') 

Информация о параметрах LINKEDSVR:

Поставщик: Поставщик Microsoft OLE DB для драйверов ODBC
Название продукта: Драйвер Microsoft Visual FoxPro
Источник данных: linkedfoxpro

Конфигурация ODBC linkedfoxpro:

Имя источника данных: linkedfoxpro
тип базы данных: Free Table Directory
Путь: c:\somefolder

Драйвер: Драйвер Microsoft FoxPro VFP (*.dbf)

Спасибо!


person Marrs    schedule 08.10.2011    source источник
comment
О, и ошибка, которую я получаю при выполнении этого запроса: что имеет смысл, но файл dbf также имеет все свои таблицы конструктора и индексы с его сервера foxpro в той же папке: Поставщик OLE DB MSDASQL для связанного сервера LINKEDSVR вернул сообщение [ Microsoft][ODBC Visual FoxPro Driver]Index не соответствует таблице. Удалите файл индекса и заново создайте индекс. Сообщение 7350, уровень 16, состояние 2, строка 2 Не удается получить информацию о столбце от поставщика OLE DB MSDASQL для связанного сервера LINKEDSVR.   -  person Marrs    schedule 08.10.2011
comment
Для тех из вас, кто тоже столкнулся с этой проблемой, после многих часов я случайно подумал об исправлении, которое по какой-то причине сработало. . . Я удалил файл .CDX, который SQL генерирует из файлов FoxPro. Затем я снова открыл SQL, и он начал работать с тем же кодом, что и выше!.... Проблема решена! Если кто-нибудь может объяснить мне, почему это произошло, пожалуйста! * ПРИМЕЧАНИЕ: в этих файлах FoxPro никогда не изменялись данные/индексы.   -  person Marrs    schedule 08.10.2011


Ответы (1)


Эти файлы CDX не генерируются SQL — это индексный файл, созданный/используемый VFP. Они очень подвержены повреждению, поэтому вполне вероятно, что CDX уже был поврежден, когда вы его получили или пересылали.

Удалив файл CDX, вы удалили все индексы из таблицы, а также источник ошибки.

person William Mioch    schedule 09.10.2011