o5a, Нет id_ - Это количество строк, всё остальное это уроки в которые записывается дз.
Пример:
У меня есть бот, я нажимаю на кнопку записи дз и выбираю музыку, соответственно в sql записывается в строку 'Музыка', но я пытаюсь сделать условие которое решает или записать все имеющиеся данные в таблицы или обновить определённую строку.
o5a, cur.execute("""CREATE TABLE IF NOT EXISTS Home_work
(
id_ INTEGER PRIMARY KEY AUTOINCREMENT,
Алгебра TEXT DEFAULT NONE,
Геометрия Text DEFAULT NONE,
Физ_ра TEXT DEFAULT NONE,
Укр_м TEXT DEFAULT NONE,
Укр_літ TEXT DEFAULT NONE,
Русск_яз TEXT DEFAULT NONE,
Русск_лит TEXT DEFAULT NONE,
Изо TEXT DEFAULT NONE,
Нем_яз TEXT DEFAULT NONE,
География TEXT DEFAULT NONE,
Англ_яз TEXT DEFAULT NONE,
Биология TEXT DEFAULT NONE,
Информатика TEXT DEFAULT NONE,
Физика TEXT DEFAULT NONE,
Основы_здоровья TEXT DEFAULT NONE,
Химия TEXT DEFAULT NONE,
Музыка TEXT DEFAULT NONE,
Ист_укр TEXT DEFAULT NONE,
Всем_ист TEXT DEFAULT NONE,
Труды_для_м TEXT DEFAULT NONE,
Труды_для_д TEXT DEFAULT NONE
)
""")
CVB - Это дз(то есть сообщение от пользователя)
G - Это список дз(дз в кортеже) Пример: [('' , ''')]
Вопрос таков мне нужно сделать условие то есть, если у меня id_ = 1:
(INSERT INTO Home_work(Алгебра, Геометрия, Физ_ра, Укр_м, Укр_літ, Русск_яз, Русск_лит, Изо, Нем_яз, География, Англ_яз, Биология, Информатика, Физика, Основы_здоровья, Химия, Музыка, Ист_укр, Всем_ист, Труды_для_м, Труды_для_д) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), {G})
Если id_ = 0:
UPDATE Home_work SET {For_lesons[Iug]} = '{CVB}'
Смотрите, всё что относится к запросу в Sql у меня в текстовом формате(Кодировка UTF-8), id - количество строк и G - список с кортежем в котором содержится другой список с записанным уроком в определённом месте.
Vindicar, Мне нужно передать строку как параметр запроса, но с запятой я пробовал и у меня не получается.
Строка кода:
sql_update_query = f"""UPDATE Home_work SET {For_lesons[Iug]} = '{(CVB,)}' WHERE id_ = 1"""
Ошибка:
cur.execute(sql_update_query)
sqlite3.OperationalError: near "dfdsfdsfds": syntax error
sql_update_query = f"""UPDATE Home_work SET {For_lesons[Iug]} = {tuple(str(item) for item in CVB.split(','))} WHERE id_ = 1"""
cur.execute(sql_update_query)
sqlite3.OperationalError: near ")": syntax error
o5a, Данные которые нужно считать из файла должны быть в списке, но внутри списка каждая строка это кортеж.
Information_about_Delphi, Production_of_Delphi, Version_of_Delphi, Points - Вот таблицы в sql в которые должны записываться данные.