GUI приложения на Python c Tkinter #7 - Удаление данных из таблицы базы SQLite 3

preview_player
Показать описание
Седьмое видео из серии о создании GUI приложения на Python с Tkinter. В этом видео Мы научимся удалять ранее добавленные записи в базу данных SQLite 3. Познакомимся с SQL запросом: DELETE.

Рекомендации по теме
Комментарии
Автор

Добрый день, я думаю будет полезно для других, что после создания 9 записей по id, 10 -я запись и последующие не будут удаляться, т.к. будет вылетать ошибка (sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 2 supplied.). Решением является дописать запятую (self.tree.set(select, '#1'), )) в запрос базу данных.

masterchief
Автор

Слава Богу, наконец, нашёлся программист публикующий в русскоязычном интернете написание программ в графике. А то дальше пустого окна редко кто чего публикует. Продолжайте, Денис! Именно благодаря таких людей и развивается человеческое общество. Спасибо. С нетерпением жду новых полезных уроков и программ.

АлександрЖиляев-шн
Автор

Спасибо за видео. Очень помог разобраться во всем этом. ОЧЕНЬ хорошо объясняешь, чуть ли не разжевываешь (или да ?))) ) В общем большая тебе благодарность и надеюсь порадуешь еще каким-нибудь познанием в этой области. Поддерживаю самый последний комментарий о том, что даже через несколько лет люди будут искать помощи. ТЫ, мне помог !

yarilo
Автор

Спасибо большое за урок, очень полезно. Интересно было бы разобраться как на такой форме переключаться между несколькими таблицами))

SaneKk
Автор

Идея кошелька весьма интересная и практичная. Можно, к примеру сделать несколько разделов ("наличные", "карточки", "доллары")... А ещё (ВАЖНО!) вывести остаток средств. Лучше также, если вместо слов "Доход" и "Расход" будут выдаваться при доходе - положительные, а при расходе отрицательные числа - ещё лучше разного цвета.

АлександрЖиляев-шн
Автор

Хорошие видео)
И подача)
Как раз то что надо)

SHKIPPER
Автор

Лайк, подписка, колокольчик. Жду следующей серии!
Плюс к упомянутому в коментариях, есть проблемка при изменении размера столбцов в таблице, конкретно - правої граници слолбца СУММА. При разшерении столбец уходит за предели окна.

ТарасГуменчик
Автор

Мину, с что еще с 5 видео шла ошибка небольшая и ты ее исправил лишь в конце 6 урока доходы и расходы не совпадали со столбцом ка и сумма, плохо что нет или убрал дату хотя в первых видео она есть.. Твои уроки без понтов и я думаю многим помогли и помогают не У тебя хорошо получается! Конечно получалось бы лучше если бы была у тебя команда....ты бы смог гораздо больше.

Сергей-жож
Автор

Доброго вечера, Денис!!! Все отлично!!! Вопрос: - как бы сделать подтверждение удаления, типа хотите удалить ДА НЕТ??? Ну и ждем следующего видео, про поиск по наименованию!!! ))) СПАСИБО)))

Energizer-foqy
Автор

Здравствуйте, спасибо большое за ваш труд! Недавно нашел эти видео - посмотрел залпом, лайк и подписка автоматом! Надеюсь, будут выходить чаще. Очень хочется узнать, как будет все это дело оборачиваться в экзешник и есть ли возможность поставлять в подобные десктопные приложения данные, получаемые с COM-порта (мучаюсь с Ардуино). Еще раз спасибо за видео)

nilmulyashov
Автор

Супер! очень доходчиво и понятно! Спасибо за уроки! Ждём новых уроков.
И скажем как здесь сделать чтобы при введении данных у нас фокус стоял на кнопке EDIT или OK скажем, чтобы можно было сразу нажать Enter после введения данных.
Ну и пожалуй ещё один интересный момент
при редактировании сделать так чтобы поля оставленные пустыми не изменялись в самой базе

alexxkogan
Автор

Видео и курс очень годные! Когда продолжение?

daniilmaibe
Автор

спасибо.
решил проверить смогу ли я сам, без создания диалогового окна . поставил видео в начале на паузу.
за 3 минуты накопипастил и подправил имеющиеся методы и реализовал удаление без подтверждения. так, сейчас посмотрю проверю.

olegmakarikhin
Автор

Привет из 2022)
Если позволите, немного добавлю функционала.
Если в метод удавления добавить строку:
self.db.c.execute(“””DELETE FROM sqlite_sequence WHERE name = ‘тут название таблицы’”””)
то можно избежать «бага» с ROWID, который возникает из за автоинкремента, который, при удалении элемента, добавляет к следующему созданному ID ужаленного. (Был 12 id, его удалили, создали новый, а он, зараза, вместо 12 стал 13. Вот от этой занозы можно избавиться одной строкой😉)

n.
Автор

Отличный материал! Подскажите, выбор Windows 10 для разработки приложений на Python дает какие-то преимущества? Или все же писать на Linux-подобных системах будет удобнее? Т.е. есть ли разница какую ОС использовать для разработки на Python? Так как большинство всегда ратует за Linux, но по факту ведь и IDE и встроенные пакеты и библиотеки в Python одинаковы на любой ОС из двух указанных и, соответственно, все что написано во всех ваших уроках равнозначно будет работать и на Linux'сах?

lagunaolder
Автор

2 минуса. Шутка =)
1) Видео появляются редко
2) Вы говорите "ИХНЕЕ"
Теперь по сути.
1) Как сделать редактирование и удаление через нажатие правой кнопки мыши?
2) Как подтягивать данные в форму при редактировании?
3) Как реализовать запрет на ввод не типовых данных?
Прошу обратить внимание на то что запрет, а не проверку, тоесть чтобы не ставились цыфры в поле статья, а буквы в поле сумма

СергейТравкин-ьщ
Автор

может в следующем выпуске сделать подтверждение удаления и сортировку позиций по возрастанию и убыванию для удобства чтения?

АдамМузаев-хц
Автор

здравствуйте, обнаружил упущение, запись можно удалить пока ID не двузначное/более чисто (10, 11, 12 ... 999...), затем выдает ошибку:
"File "директория в которой находится файл", line 63, in delete_records
self.db.c.execute('''DELETE FROM finance WHERE id=?''', (self.tree.set(selection_item, '#1')))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 2 supplied."

pickleslover
Автор

Никак не могу разобраться: почему удаление происходит лишь, когда id<10? При id>9 удаления не происходит, но на консоль выдаётся ошибка (хотя программа продолжает функционировать).

АлександрЖиляев-шн
Автор

Сегодня наткнулся на ролики, почитал каменты. Это что теперь 2 месяца ждать следующий ролик?))

RadFinder