【问题标题】:PYODBC InterfaceError- Data source name not foundPYODBC InterfaceError-找不到数据源名称
【发布时间】:2019-10-08 15:22:53
【问题描述】:

我正在尝试使用 pyodbc 将 Python 连接到 MS Access 数据库,但每次我收到以下错误:

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

这是我为将 python 连接到 MS Access 而编写的:

import pyodbc

conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\PILOT_DATA.accdb;')
cursor = conn.cursor()
cursor.execute('select * from p_inventor')

for row in cursor.fetchall():
    print (row)

根据错误,它没有找到数据源名称,所以我将“驱动程序”更改为“DSN”

import pyodbc

conn = pyodbc.connect(r'DSN={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\PILOT_DATA.accdb;')
cursor = conn.cursor()
cursor.execute('select * from p_inventor')

for row in cursor.fetchall():
    print (row)

但这无济于事。我收到以下错误:

pyodbc.Error: ('IM010', '[IM010] [Microsoft][ODBC Driver Manager] Data source name too long (0) (SQLDriverConnect)')

我尝试过的其他解决方法是同时使用 python 32 和 64 位

版本详情如下:

  • Python 3.7.4 64 位
  • 点 19.2.3
  • pyodbc-4.0.27
  • Office365 16

知道我还能做些什么来将 Python 连接到 ACCESS 数据库会非常有帮助。 提前致谢!

【问题讨论】:

  • 您的 Office 365 是 64 位吗?
  • 使用pyodbc.drivers()检查可用的驱动程序
  • @PaichengWu,是的,它是 64 位

标签: python ms-access pyodbc


【解决方案1】:

根据 pyodbc docs,您需要设置一个 ODBC,您可以像这样检查它(正如 @Parfait 所说);

import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

【讨论】:

    【解决方案2】:

    如果 Office 365 安装为“即点即用”(C2R),则某些 Office 组件存储在对非 Office 应用程序不可见的“隔离环境”中。 Access 数据库引擎就是这些组件之一。

    在这种情况下,从外部(非 Office)应用程序使用 Access 数据库引擎的解决方案是下载并安装 Access 数据库引擎 Redistributable 包,如 Microsoft Docs 文章中所述:

    Can't use the Access ODBC driver or OLEDB provider outside Office Click-to-Run applications

    【讨论】:

    • 感谢您的指导。我通过安装 Access 数据库引擎解决了这个问题。为此,我必须卸载office365程序->安装访问数据库引擎->重新安装office365。然后代码完美运行!
    【解决方案3】:

    我已经通过安装 Access 数据库引擎解决了这个问题。为此,我必须卸载office365程序->安装访问数据库引擎->重新安装office365。然后代码完美运行!

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多