2013-12-24 55 views
1

我最近搬到一台基于64位的新电脑时,我的pyodbc问题就开始了。从那时起,我只有pyodbc才能工作,如果我在我希望避免的文件路径中进行硬编码。pyodbc和文件路径名的问题

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\\Users\\jf\\Documents\\TestDB.mdb;') 

如果我尝试使用代替Access数据库中的文件路径手动键入一个变量,我得到HY000错误的地方说:不是有效的文件名。我认为这与使用64位机器并运行32位版本的Office有关。我可以尝试的其他想法是为了利用变量而不是硬编码文件路径。变量可以让我快速的变化,我在工作的当前目录

回答

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() 
+0

感谢那些对我来说在工作非常简单的例子,但是,当我尝试在我的大脚本中使用它时没有。我继续获取数据源名称找不到消息。奇怪的是我可以在32位机器上运行脚本没有问题。 – wilbev