2017-03-23 91 views
1

我使用pyodbc檢索從MSSQL的數據,這是我使用的代碼:從MSSQL葛亭數據使用pyodbc錯誤

import pyodbc 
server = 'xxxxxxxx\DEV' 
database = 'SandBox' 
username = 'zzzzzzz' 
password = 'xxxxxxx' 
driver = '{SQL Server}' 

cnxn = pyodbc.connect('DRIVER='+driver+';PORT=4853;SERVER='+server+';PORT=4853;DATABASE='+database+';UID='+username+';PWD='+ password) 
cursor = cnxn.cursor() 
cursor.execute("select * from fieldscreenscheme ") 
row = cursor.fetchone() 
if row: 
    print row 

這是錯誤的按摩我:

cnxn = pyodbc.connect('DRIVER='+driver+';PORT=43853;SERVER='+server+';PORT=43853;DATABASE='+database+';UID='+username+';PWD='+ password) 

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53); [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (0)') 

我安裝了ODBC驅動程序。任何建議如何解決這個錯誤? 我看着這兩個,但沒有幫我解決這個問題。 Python - Can't connect to MS SQL pyodbc + MySQL + Windows: Data source name not found and no default driver specified
微軟文檔:https://github.com/Microsoft/azure-docs/blob/master/articles/sql-database/sql-database-develop-python-simple.md

+0

還是沒有其他建議? – EhsanHK

回答

2

兩個問題:

  1. 通常情況下,一個供應要麼\INSTANCENAME的端口號,而不是兩個。
  2. SQL Server的ODBC連接字符串不使用PORT=,它們將端口號放在SERVER=參數中,例如SERVER=xxxxxxxx,43853。 (請注意,實例名稱被省略,分隔符是逗號,而不是冒號。)