2014-01-19 59 views
1

我使用下面的代码与SQL 2008 R2连接:无法pyODBC与SQL Server连接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> 

我不知道SQL是否连接通过命名管道或TCP,我确实启用了IP地址。附加屏幕截图 enter image description here

+0

这是否帮助:http://stackoverflow.com/questions/7753830/mssql2008-pyodbc-previous-sql-was-not-a-query – Torxed

+0

不,它不需要。我只是建立连接,而不是执行SP – Volatil3

+0

是的,但我最初的问题实际上是连接,尽管我的错误消息。通常情况下,驱动程序不是编程的根本原因。 – Torxed

回答

3

下面的测试代码对我的作品到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;' 
    )