原始应用程序使用以下连接字符串可以轻松连接到MS Access 2007格式的DB文件:
OleDbConnection^ conn = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|DB.accdb");
现在,当我尝试使用pyodbc和以下连接字符串连接到相同的DB文件(这次放在C:\中)时:
conn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\DB.accdb;")
不管我是保留OLEDB提供程序还是像这里所述使用
Provider=MSDASQL;
(MS指出它不适用于64位),我仍然会收到以下错误消息:
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()显示我有这个提供程序。
补充2: 我尝试使用win32com.client,例如这里,以便使用OLE DB连接-但没有成功。似乎不可能,什么都不起作用。