【问题标题】:Unable to connect pyODBC with SQL Server 2008 Express R2无法将 pyODBC 与 SQL Server 2008 Express R2 连接
【发布时间】:2014-02-08 12:12:41
【问题描述】:

我正在使用以下代码连接 SQL 2008 R2:

cnxnStoneedge = pyodbc.connect("DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=myDB;UID=admin;PWD=admin")

这给出了错误:

Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')
      args = ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNE...t exist or access denied. (17) (SQLDriverConnect)')
      with_traceback = <built-in method with_traceback of Error object>

我不确定是通过命名管道还是 TCP 连接 SQL,我确实启用了 IP 地址。附加屏幕截图

【问题讨论】:

  • 不,它没有。我只是建立连接,而不是执行 SP
  • 是的,但我最初的问题实际上是连接,尽管我有错误消息。通常情况下,根本原因是驱动程序而不是编程。
  • 我在上面的行中遇到错误。是的,我知道它与驱动程序有关,但我无法弄清楚 SQL Server 是如何尝试连接的
  • 您的屏幕截图显示您正在运行 SQL Server Express Edition,因此请尝试在连接字符串中使用此子句:Server=(local)\SQLEXPRESS;(而不是 SERVER=127.0.0.1;

标签: python sql-server sql-server-2008 windows-xp pyodbc


【解决方案1】:

以下测试代码适用于我将 Python 2.7.5 与 SQL Server 2008 R2 Express Edition 连接起来:

# -*- coding: utf-8 -*-
import pyodbc

connStr = (
    r'Driver={SQL Server};' +
    r'Server=(local)\SQLEXPRESS;' +
    r'Database=myDb;' +
    r'Trusted_Connection=Yes;'
    )

db = pyodbc.connect(connStr)

cursor1 = db.execute('SELECT [word] FROM [vocabulary] WHERE [ID]=5')

while 1:
    row = cursor1.fetchone()
    if not row:
        break
    print row.word
cursor1.close()
db.close()

以下连接字符串也适用于我,因为我的 \SQLEXPRESS 实例正在侦听端口 52865:

connStr = (
    r'Driver={SQL Server};' +
    r'Server=127.0.0.1,52865;' +
    r'Database=myDb;' +
    r'Trusted_Connection=Yes;'
    )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多