如何在pyodbc中自动调用fetchall()而不进行异常处理?

2024-09-20 23:00:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望在每次pyodbc查询之后自动获取结果。通常情况下,cursor.fetchall()调用会引发ProgrammingError异常,前提是没有执行任何SQL或它没有返回结果集(例如不是SELECT语句)。我想这样做:

def execute(query, data):
    cursor.execute(query, data)
    cursor.commit()
    try:
      result = cursor.fetchall()
    except pyodbc.ProgrammingError:
      result =  None
    return result

有没有什么方法可以不使用异常处理(如果使用的话,它的工作速度太慢)?在


Tags: executesqldatadef情况语句resultquery
1条回答
网友
1楼 · 发布于 2024-09-20 23:00:39

下面是一个可能对您有用的示例,其中包含要运行的示例查询列表:

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)

输出:

^{pr2}$

这样行吗?祝你好运!在

相关问题 更多 >

    热门问题