Top.Mail.Ru
Ответы

Sqlite3.OperationalError: near "(": syntax error

вылезла ошибка sqlite3.OperationalError: near "(": syntax error
отрывок кода:
def remove_tasks(self):
selected_items = self.task_list_widget.selectedItems()
if len(selected_items) > 0:
for item in selected_items:
self.task_list_widget.takeItem(self.task_list_widget.row(item))

cur.execute("DELETE FROM Task WHERE self.task_list_widget.row(item)")
else:
QMessageBox.warning(self, "Ошибка", "Выберите задачи для удаления")
self.task_list_widget.takeItem(self.task_list_widget.row(item)) - удаление определенных элементов с окна
cur.execute("DELETE FROM Task WHERE self.task_list_widget.row(item)") - на эту строчку ссылается компилятор при ошибке
не понимаю как исправлять эту ошибку

По дате
По рейтингу
Аватар пользователя
Новичок

cur.execute("DELETE FROM Task WHERE self.task_list_widget.row(item)")
Здесь вы поместили код на Python внутрь SQL-запроса.

Это значит, что код на Python уйдет в СУБД и будет там выполняться.
Но СУБД не знает Python.

Вам нужно подать в кавычках настоящий SQL-запрос, без кода на Python.
Например, указать после WHERE проверку идентификатора удаляемой строчки:

1
 cur.execute("DELETE FROM Task WHERE табличное_поле_с_айди = ?", значение_айди) 
Аватар пользователя
Знаток

не знаю