pymssql连接不返回数据,只打印列名称?

时间:2017-01-10 12:33:24

标签: python sql-server pymssql

我正在尝试从服务器获取数据,所以我尝试了如下

#!/usr/bin/python
import pymssql
conn = pymssql.connect(host='xxxx', user='xxx', password='xxx', database='xxx')


cursor = conn.cursor()
x2 = 'select * from result where url like\'%get content%\''
cursor.execute(x2)
data = cursor.fetchall()
field_names = [i[0] for i in cursor.description]
print field_names
print data

当我运行此程序时,它只给出列名,data变量为空。我不知道是什么原因。我该如何解决?

我在Windows中运行相同的脚本没有问题。但是当我在Ubuntu 14.04中执行脚本时,data变量为空。

2 个答案:

答案 0 :(得分:3)

这是Ubuntu上PyMSSQL 1.0.x的已知错误。见No data returned from MSSQL server。解决方案是将其升级到版本>= 2.0.1

  

由于PyMSSQL 1.0.x和FreeTDX版本存在问题   存储库,PyMSSQL不再从MSSQL返回任何信息   数据库查询。这意味着你不能使用fetchone()或fetchall()   或类似的方法从数据库查询中获取数据。

           托马斯·沃德(teward)在2016-06-05写道:

     

这是由于freetdx和PyMSSQL 1.0.x之间不兼容。

     

解决方法是删除python-pymssql包,并运行pip install pymssqleasy_install --upgrade pymssql或类似,以   获取最新的pymssql版本,大于或等于   2.0.1。

     

还确认了Xenial和Yakkety的这个问题,以及 Trusty

答案 1 :(得分:-1)

您可以在ubuntu 14.04上试用pyodbc