Одним из возможных решений проблемы отсутствия 64-разрядного драйвера VFPOLEDB может быть настройка базы данных VFP в качестве связанного сервера в 32-разрядном экземпляре сервера MS SQL (Express бесплатен и должен работать). SQL Сервер 2014 представляется последней версией, для которой доступно 32-разрядное издание. Для SQL Server имеется множество 64-битных драйверов OLEDB, и они не заботятся о разрядности экземпляра.
В * 1003 есть пошаговые инструкции * Как успешно подключиться к Файлы базы данных Foxpro с использованием функции MS SQL Linked Server и ODB C? over на ServerFault
Примечание: использование данных Fox через связанный сервер строго ограничено и далеко не так эффективно, как использование Fox напрямую или через VFPOLEDB. Однако иногда ограниченный доступ лучше, чем отсутствие доступа вообще.
Запросы должны использовать SQL серверный синтаксис, и они ограничены им. Например, логические поля отображаются на тип данных bit
(0 или 1), поскольку SQL Сервер не имеет понятия логических значений. Но внутри OpenQuery
вы можете использовать полный синтаксис Fox. Предполагая, что связанный сервер называется FOX, а таблица StoffPZN имеет логическое поле op
:
select * from FOX...StoffPZN where op = 1; -- T-SQL rules
select * from openquery(FOX, 'sele * from StoffPZN wher op'); -- Fox rules