今天在使用SQL语句做查询任务的时候发现,在数据库中可以直接执行的语句,放在程序中结果却是None,于是乎,就实践了一下,下面是具体的实践。
#!usr/bin/env python
# encoding:utf-8
'''
__Author__:沂水寒城
功能:执行给定的查询SQL语句,并返回查询结果数据
'''
import sys
import pymssql
reload(sys)
sys.setdefaultencoding("utf-8")
#数据库连接配置
config_dict={
'user':'你的用户名',
'password':'你的密码',
'host':'数据库地址IP',
'database':'数据库名称'
}
def SQLServer_connect(config_dict):
'''
SQLServer 数据库连接
'''
connect=pymssql.connect(**config_dict)
print 'Connect Succesful!!!'
return connect
def executeSQL(config_dict,one_sql):
'''
执行给定的SQL语句
'''
rowcount=None
try:
connect=SQLServer_connect(config_dict)
cursor=connect.cursor()
cursor.execute(one_sql)
num=cursor.rownumber
count=cursor.rowcount
print 'Cursor Num is: ',num
print 'Cursor Count is: ',count
rowcount=cursor.fetchone()[0]
print 'Total Records Num is: ',rowcount
except Exception,e:
print 'executeSQL ERROR: ',e
finally:
connect.close()
return rowcount
if __name__=='__main__':
one_sql="SELECT COUNT(*) FROM TABLE"
executeSQL(config_dict,one_sql)
结果如下:
Connect Succesful!!!
Cursor Num is: -1
Cursor Count is: -1
Total Records Num is: 125789
[Finished in 0.3s]
之前只是简单地使用游标来取结果,所以得到的就是结果中的前两种结果,后来发现这样并不是真正的结果,这里换了一种计数方式后就可以了,记录一下。
转载自:https://blog.csdn.net/Together_CZ/article/details/83014175