目前,我正在尝试使用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网站成功安装了最新版本的Microsoft OLE DB Provider for Visual FoxPro 9.0
'Provider cannot be found. It may not be properly installed.'
我在不同的pc上用python 32位版本和64位版本都试过了。如果您使用32位python,它就可以工作。然而,如果需要使用64位python,似乎也应该这样做
有没有人能顺利完成这项工作
缺少64位VFPOLEDB驱动程序的一个可能的解决方法可能是将VFP数据库设置为MS SQL server的32位实例中的链接服务器(Express是免费的,应该可以工作)。SQL Server 2014似乎是最后一个提供32位版本的版本。SQL Server有很多64位OLEDB驱动程序,它们不关心实例的位
ServerFault上的How to successfully connect to Foxpro database files using MSSQL Linked Server feature and ODBC?over中有分步指令
注意:通过链接服务器使用Fox数据受到严重限制,远不如直接使用Fox或通过VFPOLEDB使用Fox数据强大。然而,有时有限的访问总比完全没有访问要好
查询必须使用SQL server语法,并且受到SQL server语法的限制。例如,布尔字段被映射到
bit
数据类型(0或1),因为SQLServer没有布尔的概念。但是在OpenQuery
调用中,您可以使用full-Fox语法。假设链接服务器名为FOX,并且表StoffPZN有一个布尔字段op
:相关问题 更多 >
编程相关推荐