1. Главная
  2. Библиотека
  3. Программирование
  4. Bonpoc: Ниже представлен код, в котором используется уп...
Решение задачи

Bonpoc: Ниже представлен код, в котором используется управление транзакциями для добавления нового проекта и задач в базу данных. import sqlite3 def demotransactions(dbname): connection = sqlite3.connect(dbname) cursor = connection.cursor() try:

  • Программирование

Условие:

Bonpoc:
Ниже представлен код, в котором используется управление транзакциями для добавления нового проекта и задач в базу данных.
import sqlite3
def demotransactions(dbname):
connection = sqlite3.connect(dbname)
cursor = connection.cursor()
try:
cursor.execute('"
INSERT INTO projects (name, description, deadline)
VALUES ('Project Y', 'Описание проекта Y', '2024-11-01')
"')
cursor.execute('"
INSERT INTO tasks (priority, description, status, deadline, completed, project)
VALUES
(1, 'Задача 1 для Project Y\prime ', 'pending', '2024-10-15', NULL, 'Project Y\prime ),
(2, 'Задача 2 для Project Y', 'in progress', '2024-10-30', NULL, 'Project Y')
'")
raise sqlite3.Error("Искусственная ошибка для демонстрации rollback.")
connection.commit()
print("Изменения сохранены в базе данных.")
except sqlite3.Error as e:
\# В случае ошибки откат всех изменений
print(f"Ошибка: \{e\}. Откат изменений...")
connection.rollback()
finally:
connection.close()
if name == "main":
demotransactions('projectsandtasks.db')

Что произойдет, если возникает ошибка при выполнении транзакции?

Tun omsema: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов

Код выполнит откат всех изменений, если возникает ошибка при вставке данных или искусственная ошибка.

Код завершится с ошибкой, но изменения будут сохранены в базе данных, даже если возникнет ошибка.

Код не выполнит откат изменений, даже если возникает ошибка, и данные будут сохранены.

Искусственная ошибка в коде не вызовет откат изменений, и транзакция будет завершена успешно.

Решение:

Рассмотрим пошагово, что происходит в данном коде: 1. Подключается база данных с помощью sqlite3.connect и создается объект курсора. 2. В блоке try выполняется два запроса INSERT – один для таблицы projects и другой для таблицы tasks. 3. После выполнения запросов искусственно вызывает...

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет