Как обработать ошибки при выполнении запросов в pyodbc?

Пользователь

от margaret , в категории: Python , 3 месяца назад

Как обработать ошибки при выполнении запросов в pyodbc?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от rodger.botsford , 3 месяца назад

@margaret 

Ошибки при выполнении запросов в pyodbc можно обработать с помощью обычных конструкций обработки исключений в Python.


Вот некоторые примеры того, как это можно сделать:

  1. Использование конструкции try-except:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import pyodbc

try:
    # ...код для выполнения запроса...
    connection = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=username;PWD=password')
    cursor = connection.cursor()
    cursor.execute('SELECT * FROM table_name')
    
    # ...код для обработки результатов запроса...
    rows = cursor.fetchall()
    for row in rows:
        print(row)
    
    # ...код для закрытия соединения и курсора...
    cursor.close()
    connection.close()
    
except pyodbc.Error as error:
    # ...код для обработки ошибки...
    print('Ошибка при выполнении запроса:', str(error))


  1. Использование контекстного менеджера:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import pyodbc

# ...код для настройки соединения...

with pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=username;PWD=password') as connection:
    cursor = connection.cursor()
    
    try:
        # ...код для выполнения запроса...
        cursor.execute('SELECT * FROM table_name')
        
        # ...код для обработки результатов запроса...
        rows = cursor.fetchall()
        for row in rows:
            print(row)
            
    except pyodbc.Error as error:
        # ...код для обработки ошибки...
        print('Ошибка при выполнении запроса:', str(error))
        
    finally:
        # ...код для закрытия курсора...
        cursor.close()


Обратите внимание, что в обоих примерах используется класс pyodbc.Error, который является базовым классом для всех исключений, связанных с pyodbc. Если возникает ошибка при выполнении запроса, объект исключения будет содержать информацию о данной ошибке, которую можно использовать для вывода на экран или дальнейшей обработки.