[英]python and pymssql
我是python的新手。 我正在尝试查询MSSQL数据库。
import pymssql
conn = pymssql.connect(host='hostname', user='username', password='password', database='dbname')
cursor = conn.cursor()
sql = "select count(*) from T_Email with (nolock) where Transmit is null"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
print (row)
成功运行的查询是Microsoft SQL Server Management Studio,但我的python脚本始终不返回任何内容。
我确认我有网络连接。 我验证了用户名,密码和数据库名称。 如果我更改密码,那么脚本将出错。
我已经尝试过results = cursor.fetchone(),但这没有帮助。
有什么建议么?
如果您正在使用Ubuntu,您可能已经使用(像我一样)apt-get来安装pymssql包。
这是捆绑版本的已知错误: https : //bugs.launchpad.net/ubuntu/+source/pymssql/+bug/918896
尝试使用easy_install手动安装它。
我在Ubuntu 12.04上遇到了同样的问题,实际上修复程序正在执行以下操作:
$ apt-get purge python-pymssql
$ apt-get install freetds-dev
$ pip install Cython
$ pip install pymssql
尝试在查询中添加conn.commit()
import pymssql
conn = pymssql.connect(
server="server",
port=port,
user="user",
password=password,
database="database")
conn
cursor = conn.cursor()
cursor.execute("select count(*) from T_Email with (nolock) where Transmit is null")
for row in cursor.fetchall():
print ("%s\n" % str(row))
conn.close()
更改代码段中的以下行
results = cursor.fetchall()
for row in results:
print (row)
成
# results = cursor.fetchall()
for row in cursor:
print (row)
pymssql在cursor.fetchall()中有bug
如果没有足够的信息来重现这个例子,很难说出你遇到的具体问题。 但是,对于可能出现的问题,我有一些猜测:
autocommit(1)
),它也会搞砸。 看看我对自己的回答:)在pymssql(python模块)无法使用临时表 祝好运!
麦克风
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.