【发布时间】:2019-10-08 15:22:53
【问题描述】:
我正在尝试使用 pyodbc 将 Python 连接到 MS Access 数据库,但每次我收到以下错误:
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
这是我为将 python 连接到 MS Access 而编写的:
import pyodbc
conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\PILOT_DATA.accdb;')
cursor = conn.cursor()
cursor.execute('select * from p_inventor')
for row in cursor.fetchall():
print (row)
根据错误,它没有找到数据源名称,所以我将“驱动程序”更改为“DSN”
import pyodbc
conn = pyodbc.connect(r'DSN={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\PILOT_DATA.accdb;')
cursor = conn.cursor()
cursor.execute('select * from p_inventor')
for row in cursor.fetchall():
print (row)
但这无济于事。我收到以下错误:
pyodbc.Error: ('IM010', '[IM010] [Microsoft][ODBC Driver Manager] Data source name too long (0) (SQLDriverConnect)')
我尝试过的其他解决方法是同时使用 python 32 和 64 位
版本详情如下:
- Python 3.7.4 64 位
- 点 19.2.3
- pyodbc-4.0.27
- Office365 16
知道我还能做些什么来将 Python 连接到 ACCESS 数据库会非常有帮助。 提前致谢!
【问题讨论】:
-
您的 Office 365 是 64 位吗?
-
使用
pyodbc.drivers()检查可用的驱动程序 -
@PaichengWu,是的,它是 64 位