概述
总有那些知识点,错了一万遍也不带记住的。
事情是这样的。我需要使用pymssql去表中查询一个值。某些情况下,查询的结果为空,因此我需要先判断是否为空,非空的话再取出我需要的值,否则就会报错。
import pymssql
import logging
import traceback
# logger 的setup省略了
server = 'XXX'
user = 'XXX'
password = 'XXX'
database = 'XXX'
try:
conn = pymssql.connect(server, user, password, database)
cusor = conn.cursor()
cusor.execute(sql)
if cursor is not None:
# 注意这里。单纯判断cursor是否为None是不够的
row = cursor.fetchone()
what_i_want = row[0]
# 当查询结果为空时,这里会报错
except Exception as e:
msg = str(e)
logger.error('error happened in qureying database. error msg is [' + msg + ']. SQL is [' + sql + ']',
exc_info=True)
logger.error(traceback.format_exc())
当查询结果集为空时,cursor是不为None的。但是cursor.fetchone()为None。
另外在row = cursor.fetchone()之前,cursor.rowcount为0。但查询资料得知,它只有在所有条目都被fetch了之后才有意义。的确,当我执行了row = cursor.fetchone()之后,这个值就变成了1。
所以修改code:
# ...
if cursor is not None:
# 注意这里。单纯判断cursor是否为None是不够的
row = cursor.fetchone()
if row is not None:
what_i_want = row[0]
#...
问题解决
最后
以上就是粗犷小蜜蜂为你收集整理的【PYTHON】【DB】使用pymssql查询表,如何判断查询结果是否为空的全部内容,希望文章能够帮你解决【PYTHON】【DB】使用pymssql查询表,如何判断查询结果是否为空所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复