Как да четем 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 Drver (*.dbf)

Благодаря!


person Marrs    schedule 08.10.2011    source източник
comment
О, и грешката, която получавам при изпълнението на тази заявка: което има смисъл, но dbf файлът също има всичките си конструкторски таблици и индекси от своя foxpro сървър в същата папка: OLE DB доставчик MSDASQL за свързан сървър LINKEDSVR върна съобщение [ Индексът на Microsoft [ODBC Visual FoxPro Driver] не съответства на таблицата. Изтрийте индексния файл и създайте отново индекса.. Msg 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