我在 Win7 x64 上,使用 Python 2.7.1 x64。我正在将我在 VC++ 中创建的应用程序移植到 Python 以用于教育目的。
原始应用程序通过使用以下连接字符串连接到 MS Access 2007 格式 DB 文件没有问题:
OleDbConnection^ conn = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|DB.accdb");
现在,当我尝试使用 pyodbc 和以下连接到 Python 中的同一个 DB 文件(这次放在 C:\ 中)时conenction string:
conn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\DB.accdb;")
,无论我是保留 OLEDB 提供程序还是使用此处Provider=MSDASQL;
提到的(MS 提到它不适用于 64bit),我都会收到以下错误:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')
什么可能导致这个问题?
添加:我已经更仔细地研究了 pyodbc 文档并尝试过conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=c:\\DB.accdb;")
- 同样的错误。这真的很奇怪,因为 pyodbc.dataSources() 表明我有这个提供程序。
ADD2:我尝试使用诸如此处的 win32com.client 使用 OLE DB 进行连接 - 没有成功。似乎这是不可能的,没有任何作用。