2011-01-10 54 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的功能和类型。