我试图使用pythonspyodbc
连接到我的电脑上本地存储的microsoft access数据库,但我一直收到一个很长的错误。这是我的密码
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\James\Documents\Database1.accdb;')
cursor = conn.cursor()
cursor.execute('select * my_table')
以下是错误或部分错误:
Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x2cd0 Thread 0x268c DBC 0x7f37e34 Jet'. (63) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x2cd0 Thread 0x268c DBC 0x7f37e34 Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] The database you are trying to open requires a newer version of Microsoft Access. (-1073); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x2cd0 Thread 0x268c DBC 0x7f37e34 Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x2cd0 Thread 0x268c DBC 0x7f37e34 Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] The database you are trying to open requires a newer version of Microsoft Access. (-1073)")
使用pyodbc.drivers()
,返回
所以我的理解是驱动程序Driver={Microsoft Access Driver (*.mdb, *.accdb
存在于我的机器上
我下载并安装了Microsofts Access数据库引擎,但没有用。。 我还将连接字符串更改为
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;{FIL=MS Access};DriverId=25;DefaultDir=C:\Users\James\Documents;DBQ=C:\Users\James\Documents\Database1.accdb
错误消息保持不变
有什么建议吗
不确定具体情况,但可能不是编程错误,而是安装/环境错误。我有一个标准的64位office安装,并从64位Python连接到它。这适用于您提供的代码
您可能希望检查您是否正在尝试使用64位Python的32位驱动程序,或者以其他方式使用,但是给出了错误消息,这似乎不太可能
如果这不能解决问题,建议您在另一台计算机/用户帐户上尝试相同的代码,看看如果代码在那里有效,您是否可以识别差异
相关问题 更多 >
编程相关推荐