你的位置:
问答吧
-> Python
-> 问题详情
【菜鸟求助】python pymssql模块连接sql server服务器不成功问题
python2.7 for windows ,pymssql_win32 for py2.7已经安装。win7 32位系统,sqlserver2005绝对可以正常连接。
从网上学习了一段连接sql server的代码,可是在自己的机器上调试,总是报错。
代码如下:
Python code
importpymssql
con=pymssql.connect(host='10.116.5.176',user='sa',password='123456',database='MASTER_CNBJ')
cur=con.cursor()
cur.execute("select * from Price_CNBJ")printcur.fetchall()
cur.close()
con.close()
以上为网上千篇一律的入门代码,可惜运行时报如下错误。
Python code
Traceback (most recent call last):
File"C:/Users/smc8236/Desktop/connSqlserver1", line2,incon=pymssql.connect(host='10.116.5.176',user='sa',password='123456',database='MASTER_CNBJ')
File"pymssql.pyx", line549,inpymssql.connect (pymssql.c:7112)
OperationalError: (20017,'\xc4DB-Lib error message 20017, severity 9:\nUnexpected EOF from the server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')
查阅一些资料也没有解决,特此求大师指点迷津。
作者: ChoasRules
发布时间: 2011-10-10
求iambic和其他高手指点一下啊。
作者: ChoasRules
发布时间: 2011-10-10
看下这个:
http://pyyou.wordpress.com/2009/02/01/install-pymssql-and-how-to-deal-with-db-lib-error-message-20009-severity-9/
引用网页内容:
...
So I use an another environnement variable to fix that :
export TDSVER=7.0
And miracle , everything work with tsql. So I force version of tds in my ~/.freetds.conf in global section as this
[global]
tds version = 7.0
...
作者: iambic
发布时间: 2011-10-10
引用 2 楼 iambic 的回复:
看下这个:
http://pyyou.wordpress.com/2009/02/01/install-pymssql-and-how-to-deal-with-db-lib-error-message-20009-severity-9/
引用网页内容:
...
So I use an another environnement variable to fix that :
e……
不好意思,以上网页我打不开。能不能贴个全文
作者: ChoasRules
发布时间: 2011-10-10
跟tds的版本有关?我看看
作者: ChoasRules
发布时间: 2011-10-10
打不开自己挂个在线代理:http://www.dailila.com/
作者: iambic
发布时间: 2011-10-10
我的环境是windows,不是Linux
作者: ChoasRules
发布时间: 2011-10-10
看了一下您个的链接,大意就是需要匹配相应的TDS VERSION。可是大部分都是在linux环境下,我现在只有windows环境。还望指教一下。另外www.dailila.com很好用
作者: ChoasRules
发布时间: 2011-10-10
知道你用的是Windows 7。但是我翻了下源代码,windows下好像也用了freetds。你先照着配下环境变量试试。
作者: iambic
发布时间: 2011-10-10
我去查查如何配置。看来这方面对于我来讲有点难
作者: ChoasRules
发布时间: 2011-10-10
就是执行你的代码前,设下环境变量,比如命令行里:
set TDSVER=7.0
作者: iambic
发布时间: 2011-10-10
引用 10 楼 iambic 的回复:
就是执行你的代码前,设下环境变量,比如命令行里:
set TDSVER=7.0
悲催了,提示:SyntaxError: invalid syntax
SQL server服务器在远程,并非本机。
作者: ChoasRules
发布时间: 2011-10-10
windows下无法安装freetds。郁闷了。看来要换方法了。ado和pyodbc到是都已经成功了。就是不知道这个为什么要求那么难。
作者: ChoasRules
发布时间: 2011-10-10
引用 12 楼 choasrules 的回复:
windows下无法安装freetds。郁闷了。看来要换方法了。ado和pyodbc到是都已经成功了。就是不知道这个为什么要求那么难。
不需要自己装freetds。pymssql的代码里应该已经包括了。
作者: iambic
发布时间: 2011-10-10
引用 11 楼 choasrules 的回复:
悲催了,提示:SyntaxError: invalid syntax
SQL server服务器在远程,并非本机。
不要在Python的shell里执行……
在Windows的cmd里执行。执行完之后在同一个cmd窗口里运行你的python脚本。
作者: iambic
发布时间: 2011-10-10