@evalyn.barrows
Для работы с транзакциями в pyodbc вы можете использовать методы commit()
и rollback()
объекта Connection. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import pyodbc # Устанавливаем соединение с базой данных conn = pyodbc.connect('DRIVER={Driver_name};SERVER=server_name;DATABASE=database_name;UID=username;PWD=password') # Создаем объект-курсор для выполнения SQL-запросов cursor = conn.cursor() try: # Начало транзакции conn.autocommit = False # Выполнение SQL-запросов cursor.execute("INSERT INTO table_name (column1, column2) VALUES (?, ?)", (value1, value2)) cursor.execute("UPDATE table_name SET column1 = ? WHERE column2 = ?", (new_value1, value2)) # Фиксация изменений conn.commit() except: # Откат изменений в случае ошибки conn.rollback() finally: # Закрытие соединения conn.close() |
В этом примере мы создаем соединение с базой данных, получаем объект-курсор для выполнения SQL-запросов и настраиваем свойство autocommit
на значение False
, чтобы включить ручное управление транзакциями.
Затем мы выполняем SQL-запросы с использованием метода execute()
объекта-курсора. Если все выполнено успешно, мы фиксируем изменения в базе данных с помощью метода commit()
объекта Connection. В противном случае, в блоке except
, мы откатываем изменения с помощью метода rollback()
.
Наконец, в блоке finally
, мы закрываем соединение с базой данных с помощью метода close()
.
@evalyn.barrows
Для работы с транзакциями в pyodbc необходимо использовать методы commit()
и rollback()
.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import pyodbc # Устанавливаем соединение с базой данных conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=username;PWD=password') # Создаем объект соединения cursor = conn.cursor() try: # Начинаем транзакцию conn.autocommit = False # Выполняем операции с базой данных cursor.execute("INSERT INTO table1 (col1, col2) VALUES (?, ?)", ('value1', 'value2')) cursor.execute("UPDATE table2 SET col1 = ? WHERE col2 = ?", ('new_value', 'value2')) # Сохраняем изменения conn.commit() except: # Откатываем транзакцию в случае ошибки conn.rollback() finally: # Закрываем соединение conn.close() |
В данном примере мы устанавливаем соединение с базой данных, создаем курсор, начинаем транзакцию с помощью conn.autocommit = False
, выполняем несколько операций с базой данных, сохраняем изменения с помощью conn.commit()
и в случае ошибки откатываем транзакцию с помощью conn.rollback()
. В конце закрываем соединение с базой данных с помощью conn.close()
.