当我最近搬到基于64位的新PC时,我的pyodbc问题全部开始了。从那时起,如果我在我希望避免的文件路径中进行硬编码,那么我只能使pyodbc工作。
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\\Users\\jf\\Documents\\TestDB.mdb;')
如果我尝试使用变量代替在Access数据库的文件路径中手动输入,我会收到HY000错误,其中显示的不是有效的文件名。我认为这与拥有64位计算机并运行32位版本的Office有关。我可以尝试的任何其他想法,以利用变量而不是硬编码文件路径。该变量允许我快速更改到我正在使用的当前目录。
答案 0 :(得分:2)
以下代码适用于我的64位Windows 7计算机:
import pyodbc
fileSpec = r"C:\__tmp\foo.mdb"
cnxn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" + fileSpec)
cursor = cnxn.cursor()
cursor.execute("SELECT LastName FROM Clients WHERE ID=1")
while 1:
row = cursor.fetchone()
if not row:
break
print row.LastName
cnxn.close()