+ -
当前位置:首页 → 问答吧 → 【菜鸟求助】python pymssql模块连接sql server服务器不成功问题

【菜鸟求助】python pymssql模块连接sql server服务器不成功问题

时间:2011-10-10

来源:互联网

python2.7 for windows ,pymssql_win32 for py2.7已经安装。win7 32位系统,sqlserver2005绝对可以正常连接。

从网上学习了一段连接sql server的代码,可是在自己的机器上调试,总是报错。

代码如下:
Python code

import pymssql
con=pymssql.connect(host='10.116.5.176',user='sa',password='123456',database='MASTER_CNBJ')
cur=con.cursor()
cur.execute("select * from Price_CNBJ")
print cur.fetchall()
cur.close()
con.close()



以上为网上千篇一律的入门代码,可惜运行时报如下错误。
Python code

Traceback (most recent call last):
  File "C:/Users/smc8236/Desktop/connSqlserver1", line 2, in <module>
    con=pymssql.connect(host='10.116.5.176',user='sa',password='123456',database='MASTER_CNBJ')
  File "pymssql.pyx", line 549, in pymssql.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