Драйвер Visual FoxPro для 64-битной Windows 7

Я установил драйвер Visual FoxPro по этой ссылке на мою 64-битную ОС Windows 7 Home Premium и попытался зарегистрировать vfpoledb.dll с помощью REGSVR32. Я мог бы зарегистрировать эту dll, но при запуске моего приложения, которое обращается к базе данных VFP, выдается следующая ошибка:
System.InvalidOperationException: поставщик «VFPOLEDB.1» не зарегистрирован на локальном компьютере.

Это же приложение отлично работает в 32-битной ОС Windows 7 Home Premium без каких-либо проблем. Я искал 64-битный драйвер VFP в Google и обнаружил, что драйверов VFP для 64-битной ОС из этого ссылка. Пожалуйста, помогите мне решить эту проблему.


person Nagesh    schedule 01.07.2011    source источник


Ответы (3)


Я обнаружил, что для 64-битной ОС нет 64-битного драйвера VFP. Все, что нам нужно сделать, это изменить параметр сборки в свойствах проекта и установить для параметра Platform Target значение X86 вместо Any CPU. Соберите приложение для X86. См. это для более подробной информации.

person Nagesh    schedule 01.07.2011

Это немного поздно, но может помочь кому-то еще:) Вы можете использовать Advantage OLE DB Provider for Windows 64-bit, который работает как VFPOLEDB. Пример в питоне:

conn = win32com.client.Dispatch('ADODB.Connection')
dsn = 'Provider=Advantage OLE DB Provider;Data Source=%s; ServerType=ADS_LOCAL_SERVER; TableType=ADS_VFP;' % folder
conn.Open(dsn)
cmd.CommandText = 'ALTER TABLE test ALTER COLUMN area NOT NULL'
cmd.Execute()
person neurocker    schedule 09.07.2019
comment
Я использую Advantage OLE DB Provider для 64-разрядной версии Windows, поскольку VFPOLEDB недоступен в 64-разрядном режиме. В моем приложении ASP.NET MVC (запрограммированном с использованием C#) я установил следующую строку подключения: string conString = @Provider=Advantage OLE DB Provider;Data Source= + dbfFilePath + ;ServerType=ADS_LOCAL_SERVER;TableType=ADS_VFP;Extended Properties=dBASE IV ;; Мой dbfFilePath похож на C:\MyApp\Data\MyDbfFile.dbf, и когда я выполняю команду Open, я получаю сообщение об ошибке 7077: Словарь данных Advantage не может быть открытым. axServerConnect AdsConnect. Ты знаешь почему? - person Ralph; 16.11.2020
comment
@Ralph, вместо этого попробуйте C:\MyApp\Data, я думаю, там должен быть путь к папке. - person neurocker; 25.11.2020

Запись в блоге Эрика Селье, Salty Dog Solutions описывает, как запускать 32-битные драйверы в 64-битной Windows. (Вы должны настроить их в 32-разрядном администраторе ODBC.)

  1. Visual FoxPro, 32-разрядное приложение, отлично работает на 64-разрядных машинах.
  2. Однако Visual FoxPro не может использовать 64-битные драйверы ODBC.
  3. Вы можете использовать 32-разрядные драйверы ODBC в 64-разрядной версии Windows, но вы должны установить их в 32-разрядном администраторе ODBC. Это не тот, который появится, если вы пройдете через панель управления. Чтобы вызвать его, запустите C:\Windows\SysWow64\odbcad32.exe и добавьте туда свои DSN.
  4. Не просто Start, Run, ODBCAd32.exe, так как он не вызовет нужного.
  5. 32-разрядные драйверы для SQL Server поставляются с Windows 7 x64, поэтому их не нужно загружать.
person ABID    schedule 05.03.2012
comment
Вы говорите о драйверах ODBC; насколько я могу судить, он использует драйвер oledb. Две разные вещи. - person reiniero; 04.04.2013