我正嘗試通過python連接到SQL以在Microsoft SQL服務器上的某些SQL數據庫上運行一些查詢。從我的在線研究和論壇上看,最有前途的圖書館似乎是pyodbc。所以我做了下面的代碼使用Python連接到Microsoft SQL服務器
import pyodbc
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+;
database=+MSQLDatabase+; trusted_connection=true")
cursor = conn.cursor()
,並出現以下錯誤
Traceback (most recent call last):
File "C:\Users...\scrap.py", line 3, in <module>
conn = pyodbc.connect(init_string="driver={SQLOLEDB}; server=+ServerName+; database=+MSQLDatabase+; trusted_connection=true")
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我已經看過了如下因素的帖子,並試圖改變我的司機{SQL服務器},並使用ODBC鏈接之前已連接在SAS中,這部分是我上面的代碼所基於的,所以不要以爲我需要安裝其他任何東西。
Pyodbc - "Data source name not found, and no default driver specified"
由於
感謝和代碼,我得到了一個司機的工作。儘管我必須擺脫.format(...)並將變量放在適當的位置。這種格式意味着什麼? –
您需要安裝'adodbapi'才能使用OLEDB連接。字符串格式是將變量傳遞到字符串而不是使用'+'運算符的推薦方式。帶數字的大括號是'format()'相應填充的佔位符。你甚至可以使用'format()'傳入列表和元組。您的原始代碼不會通過引號分隔字符串和變量,因此'+'被視爲字符串的一部分。 – Parfait
雖然這個答案很好,並幫助我解決問題。誰試圖做到這一點,請記住,如果您設置可信連接= yes,並在相同連接字符串中輸入UID/pwd,則可能會得到異常。這是一種或者兩種組合方式,當您使用可信連接時,即使您明確提及UID/PWD,也會使用NT /系統憑證進行身份驗證。 – S4nd33p