本文介紹了為什么在使用pyodbc從MSSQL獲取數據時出現此錯誤?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在使用pyodbc從MSSQL檢索數據,以下是我正在使用的代碼:
import pyodbc
server = 'xxxxxxxxDEV'
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
Microsoft文檔:https://github.com/Microsoft/azure-docs/blob/master/articles/sql-database/sql-database-develop-python-simple.md
推薦答案
兩個問題:
-
通常,一個人提供
INSTANCENAME
或端口號,而不是同時提供兩者。SQL Server的ODBC連接字符串不使用
PORT=
,它們將端口號放在SERVER=
參數中,例如SERVER=xxxxxxxx,43853
。(請注意,實例名稱被省略,并且分隔符是逗號,而不是冒號。)
這篇關于為什么在使用pyodbc從MSSQL獲取數據時出現此錯誤?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,