#sql #sql-server #database #foxpro
#sql #sql-сервер #База данных #foxpro
Вопрос:
Я должен прочитать два файла .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 Тип базы данных: Путь к каталогу свободной таблицы: c:somefolder
Драйвер: Microsoft FoxPro VFP Drver (*.dbf)
Спасибо!
Комментарии:
1. О, и ошибка, которую я получаю при выполнении этого запроса: что имеет смысл, но файл dbf также содержит все свои «таблицы конструкторов и индексы» со своего сервера foxpro в той же папке: поставщик OLE DB «MSDASQL» для связанного сервера «LINKEDSVR» вернул сообщение «[Microsoft][Драйвер ODBC Visual FoxPro] Индекс не соответствует таблице. Удалите индексный файл и заново создайте индекс «. Сообщение 7350, уровень 16, состояние 2, строка 2 Не удается получить информацию о столбце от поставщика OLE DB «MSDASQL» для связанного сервера «LINKEDSVR».
2. Для тех из вас, кто тоже зашел в тупик с этой проблемой, после многих часов я случайно придумал исправление, которое по какой-то причине сработало . , , Я удалил файл .CDX, который SQL генерирует из файлов FoxPro. Затем я снова открыл SQL, и он начал работать с тем же кодом, что и выше !…. Проблема решена! Если кто-нибудь может объяснить мне, почему это произошло, пожалуйста, сделайте это! * ПРИМЕЧАНИЕ: в этих файлах FoxPro никогда не изменяются данные / индексы.
Ответ №1:
Эти файлы CDX не генерируются SQL — это индексный файл, созданный / используемый VFP. Они очень подвержены повреждению, поэтому вполне вероятно, что CDX уже был поврежден, когда вы его получили или в пути.
Удалив файл CDX, вы удалили все индексы из таблицы, а также источник ошибки.