【问题标题】:Can't open database with pyodbc无法使用 pyodbc 打开数据库
【发布时间】:2017-01-09 13:47:15
【问题描述】:

我确定这是一个非常简单的问题,但我无法解决。我正在尝试使用 pyodbc 打开一个本地数据库,但它不会让我这样做。 数据库和脚本在同一路径上,没有密码。我的系统上只安装了一个 Python - Anaconda 3,当我使用 PIP 安装来自 Christoph Gohlke 的 Python 3.5、64 位 whl 文件时,这是 pyodbc 自行安装的位置

import pyodbc
pyodbc.connect('Driver={SQL Server};Server=(local);Database=tblGrid.mdb;Trusted_Connection=yes;')

我收到以下错误:

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')

谢谢

【问题讨论】:

  • tblGrid.mdb 是 Access 数据库吗?
  • 是的。 2002-2003 格式
  • 那为什么不用Access ODBC驱动打开呢?我不知道可以使用 SQL Server ODBC 驱动程序连接到 Access 数据库。
  • 我是否只需更改我的语法以使驱动程序为 Driver={Access ODBC}?
  • 否,不同数据库的连接字符串语法不同。您最好的选择是进入控制面板并为您的 Access 数据库设置一个 ODBC DSN。然后你可以用pyodbc.connect('DSN=mydsn')连接到它。

标签: python database driver pyodbc


【解决方案1】:

您需要使用 Microsoft Access ODBC 驱动程序打开 *.mdb 文件。

这是一个连接的例子:

pyodbc.connect(
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\some\path\tblGrid.mdb')

【讨论】:

  • 我刚刚尝试过,但收到以下错误:pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no指定的默认驱动程序 (0) (SQLDriverConnect)')
  • 您是否安装了 Access ODBC 驱动程序?您可以在控制面板中检查它。如果没有,您可以从 Microsoft 下载(免费)。
  • 另外,您可能需要数据库文件的完整路径。
  • 我好像没有驱动程序。它出现在我的用户 DSN 列表中,但是当我选择它并单击“配置”时,错误消息“找不到 Microsoft Access Drive (*.dmb) ODBC 驱动程序的安装例程。请重新安装驱动程序”。我看看能不能在网上找到
  • 认为我的问题源于 32 位和 64 位软件的冲突。我有 Office 2007,它只有 32 位,但运行 Python 64 位。
猜你喜欢
  • 2022-01-18
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 1970-01-01
相关资源
最近更新 更多