我是靠谱客的博主 粗犷小蜜蜂,最近开发中收集的这篇文章主要介绍【PYTHON】【DB】使用pymssql查询表,如何判断查询结果是否为空,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

总有那些知识点,错了一万遍也不带记住的。

 

事情是这样的。我需要使用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查询表,如何判断查询结果是否为空所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部