2011-01-10 67 views
2

我能與MSSQL Management Studio連接到服務器,但無法使用Python連接我想在連接字符串中的一些問題,請在下面幫助一個IP地址連接到SQL Server 2008是字符串我使用。如何通過使用pyodbc在Python

import pyodbc as p 

connStr = (r'DRIVER={SQL Server};Server=ip; Network=DBMSSOCN;Initial Catalog=' + database + ';User ID=' + id +';Password=' + pass1 +';Trusted_Connection=True' +';') 

conn = p.connect(connStr) 

錯誤是像下面

conn = p.connect(connStr) 
pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][TCP/IP Sock 
ets]SQL Server does not exist or access denied. (17) (SQLDriverConnectW); [01000 
] [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (Connect()). 
(10060); [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string a 
ttribute (0)') 
+0

是否已將SQL服務器配置爲偵聽TCP套接字?默認情況下它沒有。你必須進入配置管理器來檢查 – 2011-01-10 13:01:27

回答

4

大量的步道和錯誤的這個字符串的工作後:

connStr = ('DRIVER={SQL Server Native Client 10.0};Server=ip;port=port;Network Library=DBMSSOCN;Database=TEST;uid=id;pwd=pass;') 

希望在需要時將幫助任何人......

3

有實際上是兩個或三個由Microsoft編寫和分發的SQL Server驅動程序:一個稱爲「SQL Server」,另一個稱爲「SQL Server」作爲「SQL本機客戶端」和「SQL Server Native Client 10.0」)。

DRIVER = {SQL 服務器}; SERVER =斗篷; DATABASE =測試; UID =用戶; PWD =密碼

DRIVER = {SQL本機 客戶端}; SERVER =匕首; DATABASE =測試; UID =用戶; PWD =密碼

DRIVER = {SQL Server的本機客戶端 10.0}; SERVER =匕首; DATABASE =測試; UID =用戶; PWD =密碼

的「SQL Server的」一個適用於SQL Server的所有版本,但只允許由SQL Server 2000支持的功能和數據類型,不管你實際的服務器版本。

對於SQL Server 2005的安裝,使用 「SQL本機客戶端」,使2005年的特點和類型。請注意,該版本不是在所有SQL Server 2008安裝中提供的!

最後,你需要的 「SQL Server Native Client的10.0」 爲SQL Server 2008的功能和類型。