【问题标题】:Python Access Database Query Giving "Data Source Name Not Found"Python Access 数据库查询给出“未找到数据源名称”
【发布时间】:2018-03-05 18:41:03
【问题描述】:

每当我尝试使用 Python 脚本查询文件时,都会收到以下错误

pyodbc.InterfaceError: ('IM002', u'[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

Image of Error Message

我的代码如下:

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-bit”。我还使用“32 位”python 2.7.13 和 32 位 PYODBC。而且,我在 ODBC 数据源管理器中设置了 32 位驱动程序:

Image of ODBC 32-bit

我不明白为什么我仍然收到此错误消息?

【问题讨论】:

    标签: python ms-access pyodbc


    【解决方案1】:

    连接字符串不正确。没有带括号 [...]ODBCDataFile 关键字。只需删除它们并将 DRIVER 分配给已安装的 ODBC 驱动程序,如屏幕截图所示:

    conn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};" + \
                          "DBQ=C:\\Users\\jmtr\\Documents\\IRST_old.accdb;")
    

    【讨论】:

    • 谢谢!我进行了请求的更改,查询现在正在运行!感谢您的帮助。
    • 太棒了!别忘了用thanks on StackOverflow的特殊方式来确认分辨率!
    【解决方案2】:

    我认为你拼错了 ODBCDataFile 而不是 ODBCFile

    但在 python 中,字符 \ 是字符串中的转义字符。您需要附加前缀 r"DRIVER..." 以强制使用原始字符串,因此不会误解转义字符。

    【讨论】:

      【解决方案3】:

      如果还没有,请先下载并安装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 的更多信息:

      https://elvand.com/python-and-ms-access/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-15
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        相关资源
        最近更新 更多