【问题标题】:Reading MS Access with Python 3.7使用 Python 3.7 阅读 MS Access
【发布时间】:2023-04-03 15:45:01
【问题描述】:

我已经在线阅读了一百页关于如何将遗留的 MS Access 数据库连接到 Python,但一切似乎都过时了。我正在使用带有 SQLAlchemy 和 PyODBC 的 Python 3.7 64 位,但 SQLAlchemy 不再支持 MS Access,我无法让任何代码工作。最近有人用现代版的 Python 连接到 Access 吗?这是我的代码不起作用。

import pyodbc
connStr = (
    r"DRIVER={Microsoft Access Driver (*.accdb)}; DBQ=E:\db\Records.accdb; Uid=Admin; Pwd=;"
    )
conn = pyodbc.connect(connStr)
cursor = conn.cursor()
cursor.execute('select * from Students')
for row in cursor.fetchall():
    print(row)

错误:

Traceback(最近一次调用最后一次): 文件“G:/Projects/AccessTest/accessdb.py”,第 7 行,在 conn = pyodbc.connect(connStr) pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

【问题讨论】:

  • here。没有名为 Microsoft Access Driver (*.accdb) 的 Access ODBC 驱动程序。检查pyodbc.drivers() 返回的列表以查看Microsoft Access Driver (*.mdb, *.accdb) 是否可用于您的Python 应用程序,如果没有,则安装它。
  • 该死,我只有 MS SQL 驱动程序,这是我在 Windows 中为 64 位驱动程序访问 ODBC GUI 时看到的,我必须访问 ODBCAD32.exe查看 32 位驱动程序,这就是我拥有 MS Access 的全部内容。有没有办法切换 PyODBC 以使用其他驱动程序?

标签: python-3.x ms-access sqlalchemy pyodbc


【解决方案1】:

添加了来自 MS 的两个 32 位驱动程序,并创建了一个捷径(因为现有的只是转到 64 或 32,无论您的操作系统是什么)。然后我能够设置一个 ODBC 源,PyODBC 连接得很好。在相关说明中,我在 64 位 Windows Server 上使用 XAMPP 时遇到了同样的问题,安装额外的 MS 驱动程序也解决了这个问题。

这是使用 MS 安装程序安装 32 位驱动程序的位置。显然不是第一个。

C:\Windows\SysWOW64\odbcad32.exe

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多