我希望在每次 pyodbc 查询后自动获取结果。在通常情况下cursor.fetchall()
调用如果没有执行SQL或者没有返回结果集(例如,不是SELECT语句),则会引发ProgrammingError
异常。我想做这样的事情:
def execute(query, data):
cursor.execute(query, data)
cursor.commit()
try:
result = cursor.fetchall()
except pyodbc.ProgrammingError:
result = None
return result
是否有某种方法可以在不使用异常处理的情况下实现(如果使用的话它的工作速度太慢)?
答案 0 :(得分:1)
以下是一个可能适合您的示例,其中包含要运行的示例查询列表:
sql_to_run = [
"SELECT 10000",
"SELECT 2 + 2",
"",
"SELECT 'HELLO WORLD'",
]
for sql in sql_to_run:
rows = cursor.execute(sql)
if cursor.rowcount:
for row in rows:
print(row)
输出:
(10000, )
(4, )
('HELLO WORLD', )
这会诀窍吗?祝你好运!