今天在使用SQL语句做查询任务的时候发现,在数据库中可以直接执行的语句,放在程序中结果却是None,于是乎,就实践了一下,下面是具体的实践。
#!usr/bin/env python# encoding:utf-8'''__Author__:沂水寒城功能:执行给定的查询SQL语句,并返回查询结果数据'''import sysimport pymssqlreload(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 connectdef executeSQL(config_dict,one_sql):'''执行给定的SQL语句'''rowcount=Nonetry:connect=SQLServer_connect(config_dict)cursor=connect.cursor() cursor.execute(one_sql)num=cursor.rownumbercount=cursor.rowcountprint 'Cursor Num is: ',numprint 'Cursor Count is: ',countrowcount=cursor.fetchone()[0]print 'Total Records Num is: ',rowcountexcept Exception,e:print 'executeSQL ERROR: ',efinally:connect.close()return rowcountif __name__=='__main__':one_sql="SELECT COUNT(*) FROM TABLE"executeSQL(config_dict,one_sql)
结果如下:
Connect Succesful!!!Cursor Num is: -1Cursor Count is: -1Total Records Num is: 125789[Finished in 0.3s]
之前只是简单地使用游标来取结果,所以得到的就是结果中的前两种结果,后来发现这样并不是真正的结果,这里换了一种计数方式后就可以了,记录一下。