【发布时间】:2020-04-27 15:35:57
【问题描述】:
目前我正在尝试使用 python win32com 模块与 foxpro 数据库建立连接。 Python 代码目前如下所示:
import win32com.client
conn = win32com.client.Dispatch('ADODB.Connection')
dsn = 'Provider=vfpoledb;Data Source=C:\MyDbFolder\MyDbContainer.dbc;'
conn.Open(dsn)
print('ok')
但是它说它找不到提供者;即便如此,我已经成功地从微软网站安装了最新版本的 Microsoft OLE DB Provider for Visual FoxPro 9.0。
'找不到提供者。它可能没有正确安装。'
我已经在不同的电脑上尝试过使用 python 32 位和 64 位版本。如果您使用 32 位 python,它可以工作。但是,如果需要使用 64 位 python,似乎也应该这样做。
有没有人顺利完成这项工作?
【问题讨论】:
-
查看类似(部分已回答)的问题:stackoverflow.com/questions/56062925/…。我想必须可以从 64 位 python 使用 32 位 COM 对象,但不能“没有问题”。
-
为其他读者澄清一下:没有 64 位 VFPOLEDB 提供程序,这意味着 64 位 python 需要以某种方式使用 32 位提供程序。由于涉及到数据库容器 (DBC),因此找到工作的第 3 方提供者的机会很小(与可以读/写 DBF 的东西相反,无论是否与其他用户同时)。
标签: python oledb adodb win32com visual-foxpro