5

我可以使用 mssql management studio 连接到服务器,但无法使用 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)')
4

2 回答 2

7

经过大量的跟踪和错误之后,这个字符串起作用了:

connStr = ('DRIVER={SQL Server Native Client 10.0};Server=ip;port=port;Network Library=DBMSSOCN;Database=TEST;uid=id;pwd=pass;')
于 2011-01-11T08:32:26.143 回答
3

Microsoft 编写和分发的 SQL Server 驱动程序实际上有两三个:一个称为“SQL Server”,另一个称为“SQL Native Client”和“SQL Server Native Client 10.0}”。

DRIVER ={SQL Server};SERVER=cloak;DATABASE=test;UID=user;PWD=password

DRIVER ={SQL Native Client};SERVER=dagger;DATABASE=test;UID=user;PWD=password

DRIVER ={SQL Server Native Client 10.0};SERVER=dagger;DATABASE=test;UID=user;PWD=password

“SQL Server”适用于所有版本的 SQL Server,但仅启用 SQL Server 2000 支持的功能和数据类型,而与您的实际服务器版本无关。

对于 SQL Server 2005 安装,使用“SQL Native Client”启用 2005 功能和类型。请注意,并非所有 SQL Server 2008 安装都提供此版本!

最后,您需要“SQL Server Native Client 10.0”来获得 SQL Server 2008 的功能和类型。

于 2011-08-18T15:48:16.337 回答