2017-05-28 62 views
0

我已經寫了下面的代碼,SQL Server數據庫從Visual Studio使用Python連接:Server不存在或拒絕訪問

import pyodbc 
con = pyodbc.connect('Driver={SQL Server};Server=localhost;Database=ReportServerTempDB;Trusted_Connection=yes') 
cur = con.cursor() 
    cur.execute("select [User], [datetime] FROM [ReportServerTempDB].[dbo]. 
[DBUpgradeHistory]") 

for row in cur: 
    print (row.user + "," + row.datetime) 
    #print row[0] + "," + row[1] 
    cur.close() 
con.close() 

但是,我得到這樣的錯誤:

Traceback (most recent call last):File "IronPythonApplication1.py", line 2,in con = pyodbc.connect('Driver={SQL Server};Server=localhost;Database=ReportServerTempDB;Trusted_Connection=yes') pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver] [DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')

筆記:我對SQL Server有Windows身份驗證,我使用的是VS 2015,Python環境是IRON Python 64位2.7

編輯: 我改變了驅動程序,因爲這:驅動程序= {ODBC驅動程序11用於SQL Server} 如果我給這樣在我的代碼

for row in cur: 
    print (row.user) 

得到一個新的錯誤。

回溯(最近通話最後一個):在CUR 文件 「IronPythonApplication1.py」,第6行,在 爲行: pyodbc.ProgrammingError:試圖使用一個封閉的光標。

如何解決這個問題?

+0

縮進是蟒蛇真的很重要,你的示例代碼充滿了蹩腳的縮進的。先解決這個問題,然後再試一次。 –

回答

0

我只是改變它像這樣和它的工作:

import pyodbc 
con = pyodbc.connect('Driver={ODBC Driver 11 for SQL Server};Server=localhost;Database=ReportServer;Trusted_Connection=yes') 
cur = con.cursor() 
cur.execute("select userid,username from Users") 

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