我正在尝试使用以下连接字符串连接到Access 2007数据库。
conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=<C:\Users\JSeinfeld\Desktop\Backup databases\Database_6.7.accdb>;")
我收到此错误:
追踪(最近的呼叫最后):
文件“”,第1行,in conn = pyodbc.connect(“Driver = {Microsoft 访问驱动程序(* .mdb, * .ACCDB)}; DBQ =;“)错误:('HY000',“[HY000] [Microsoft] [ODBC Microsoft Access 驱动程序]一般错误无法打开 注册表项临时(易失性)Ace 进程0x167c的DSN为线程0x1568 DBC 0x1c67a5c
射流”。 (63)(SQLDriverConnectW); [HY000] [微软] [ODBC Microsoft 访问驱动程序]一般错误无法 打开注册表项临时(volatile) 进程0x167c线程的Ace DSN 0x1568 DBC 0x1c67a5c
射流”。 (63); [HY000] [微软] [ODBC Microsoft Access驱动程序]无效 文件名。 (-1044); [HY000] [Microsoft] [ODBC Microsoft Access 驱动程序]一般错误无法打开 注册表项临时(易失性)Ace 进程0x167c的DSN为线程0x1568 DBC 0x1c67a5c
射流”。 (63); [HY000] [微软] [ODBC Microsoft Access驱动程序]一般错误 无法打开注册表项临时 (volatile)进程0x167c的Ace DSN 线程0x1568 DBC 0x1c67a5c
射流”。 (63); [HY000] [微软] [ODBC Microsoft Access驱动程序]无效 文件名。 (-1044)“)
在SO上还有另外一个问题,但是我没有32/64位兼容性问题。对于这个问题似乎没有一个好的答案,但希望有人可以帮我连接到我的数据库,因为我不知道用python查询或向Access 2007写入数据的任何其他方法。
由于
答案 0 :(得分:3)
有同样的问题 - 这是一个逃避访问数据库位置中使用的反斜杠的简单案例
>>> conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\access\\site_be.accdb;")
同时工作
>>> conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\access\site_be.accdb;")
给了我错误
Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] Not a valid file name. (-1044)")
希望有所帮助..
答案 1 :(得分:1)
尝试从文件名中删除括号。
conn = pyodbc.connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\JSeinfeld\Desktop\Backup databases\Database_6.7.accdb")
答案 2 :(得分:0)
您的文件夹中是否有* .ldb文件?
我有非常类似的错误消息,但我的还包括“已经在使用的文件”。就我而言,我终于意识到数据库上存在锁定(.mdb旁边的.ldb文件)。我有一个运行的服务,它一直使用数据库 - 我想是时候切换到多用户数据库引擎了。
作为一个实验,我制作了数据库的副本,并且pyodbc连接到副本就好了。这显然不是一个长期的解决方案,但至少现在我知道问题是什么。
答案 3 :(得分:0)
Fabiolus说得对。
反斜杠字符表示下一个字符在字符串中具有特殊含义。所以破译双反斜杠......第一个反斜杠告诉python准备一个特殊的字符串字符,第二个反斜杠是特殊的字符串字符(在这种情况下是反斜杠)
\n = newline
\t = tab
\\ = backslash