Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7 сем / 2 / мисприс-2.2_1374_Наволоцкий_Зырянов_Харитонов.docx
Скачиваний:
3
Добавлен:
29.03.2025
Размер:
1.7 Mб
Скачать

2.7.8 Процедура удаления записи в таблице “input_resources”

функция: delete_input_resource - добавление записи в таблицу input_resources

-- вход:

-- 1. unit_id - id ЕИ

-- 2. operation_id - id операции

-- 3. prod_id - id объекта

-- выход: 1 успех / 0 ошибка

-- эффекты:

-- 1. удаление записи в таблице input_resources

-- требования:

-- 1. передаваемые аргументы должны существовать

def delete_input_resource(unit_id, operation_id, prod_id):

try:

cursor.execute("""

SELECT COUNT(*) FROM input_resources

WHERE operation_id = ? AND prod_id = ? AND unit_id = ?

""", (operation_id, prod_id, unit_id))

if cursor.fetchone()[0] == 0:

print(f"No matching resource found for operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id}")

return

cursor.execute("""

SELECT resource_name FROM input_resources

WHERE operation_id = ? AND prod_id = ? AND unit_id = ?

""", (operation_id, prod_id, unit_id))

resource_name = cursor.fetchone()[0]

cursor.execute("""

DELETE FROM input_resources

WHERE operation_id = ? AND prod_id = ? AND unit_id = ?

""", (operation_id, prod_id, unit_id))

conn.commit()

print(f"ресурс c названием \"{resource_name}\" operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id} успешно удален")

except Exception as e:

conn.rollback()

print(f"Error in delete_input_resource: {e}")

2.7.9 Процедура изменения количества ресурса в таблице “inputs_resources”

функция: change_resource_quantity - изменение количества ресурса в input_resources

-- вход:

-- 1. unit_id - ЕИ

-- 2. operation_id - id операции

-- 3. prod_id - id объекта

-- 4. quantity - количество

-- выход: 1 успех / 0 ошибка

-- эффекты:

-- 1. изменение ресурса в таблице input_resources

-- требования:

-- 1. передаваемые аргументы должны существовать

def change_resource_quantity(unit_id, operation_id, prod_id, quantity):

try:

cursor.execute("""

SELECT COUNT(*) FROM input_resources

WHERE operation_id = ? AND prod_id = ? AND unit_id = ?

""", (operation_id, prod_id, unit_id))

if cursor.fetchone()[0] == 0:

print(f"No matching resource found for operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id}")

return

cursor.execute("""

SELECT resource_name FROM input_resources

WHERE operation_id = ? AND prod_id = ? AND unit_id = ?

""", (operation_id, prod_id, unit_id))

resource_name = cursor.fetchone()[0]

cursor.execute("""

UPDATE input_resources SET quantity = ?

WHERE operation_id = ? AND prod_id = ? AND unit_id = ?

""", (quantity, operation_id, prod_id, unit_id))

conn.commit()

print(f"поле \"quantity\" у ресурса с названием \"{resource_name}\" operation_id={operation_id}, prod_id={prod_id}, unit_id={unit_id} успешно обновлено в = {quantity}")

except Exception as e:

conn.rollback()

print(f"Error in change_resource_quantity: {e}")

Соседние файлы в папке 2