每当我尝试使用Python脚本查询文件时,都会收到以下错误
pyodbc.InterfaceError:(' IM002',u' [IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序(0)(SQLDriverConnect)&# 39)
我的代码如下:
conn = pyodbc.connect ("DRIVER={ODBCDataFile [Microsoft Access Driver
(*.mdb, *.accdb)]};DBQ=C:\Users\jmtr\Documents\IRST_old.accdb;")
cur = conn.cursor()
cur.execute("SELECT Name, CAI, Email, SSPLocation, BUNUM from Tbl_SSP")
我的Access数据库是" Microsoft Access 2016 32位"。我也在使用" 32位" python 2.7.13和32位PYODBC。而且,我在ODBC数据源管理器中设置了32位驱动程序:
我不明白为什么我仍然收到此错误消息?
答案 0 :(得分:1)
连接字符串不正确。括号authors
没有ODBCDataFile
个关键字。只需删除它们并将 DRIVER 分配给已安装的ODBC驱动程序,如屏幕截图所示:
[...]
答案 1 :(得分:0)
我认为你拼错了ODBCDataFile
而不是ODBCFile
。
但是在python中,字符\
是字符串中的转义字符。你需要附加前缀r"DRIVER..."
来强制原始字符串,所以不要错过解释转义字符。
答案 2 :(得分:0)
如果您还没有,请先下载并安装 Microsoft Access Database Engine 2010 Redistributable。
然后你应该安装 pyodbc 模块。
现在你可以连接访问数据库了:
ConFileName=(r'c:\mydb\myaccess.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + ConFileName + ';')
cursor = conn.cursor()
要从数据库中的任何表中进行选择,请使用以下简单代码:
ConFileName=(r'c:\mydb\myaccess.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + ConFileName + ';')
cursor = conn.cursor()
cursor.execute('select * from table1')
for row in cursor.fetchall():
Table1Array.append((row[0],row[1],row[2])
print(str(len(Table1Array))+" records in Table1 loaded successfully.")
您可以点击此链接以获取有关使用 Pyton 的 MS Access 的更多信息: