Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Составление SQL-запросов > [SQLite, Qt4] SELECT отображает удаленные данные |
Автор: Nikys 17.5.2013, 09:55 | ||||||
Программирую базу данных под управлением Qt на SQLite. Внезапно обнаружил, что если я удаляю некоторые данные с помощью DELETE, то они обнаруживаются с помощью SELECT. Выявил при построении таблицы QTableView на основе модели QSqlQueryModel. Создание таблицы:
Добавление элемента:
Разумеется, на месте %1 и других идут конкретные строки. Удаление элемента:
Выполнение команды происходит успешно (.exec() возвращает true). Зато, если добавить элемент с ранее существовавшим name, то SELECT будет находить оба значения. Проблема ли в моей реализации, или надо по-другому удалять/искать неудаленные значения? Заранее благодарен, всем спасибо! |
Автор: Zloxa 17.5.2013, 14:30 |
а меня смущает что вставляется в name строка '%2', а удаляется по критерию равенству на '%1' |
Автор: Fortop 17.5.2013, 16:04 | ||
Ну, я, надеюсь, %2 из 1го запроса и %1 из 2го это просто порядковый номер аргумента ![]() Если это не так, то забавно ![]() |
Автор: Nikys 18.5.2013, 00:01 |
%1 - это для аргумента строки QString. Аргумент сначала указывается,а потом строка передается на исполнение к нужному query. Хм,а как можно с SQLite через админку работать?Это разве не встраиваемая система? А вообще,не совсем понял,что дает комманда СОММIT, можете мне объяснить?То есть,выделенная транзакция выполняется сразу же?Мне просто предлагали добавить,но это проблему не решило |
Автор: Nikys 18.5.2013, 13:34 |
Все работает. Просто я дурак. Удалял не по тому критерию (по имени, а не комманде). Прошу прощения за тревогу ![]() |
Автор: Fortop 19.5.2013, 11:31 | ||
хранилище БД для него это обычный файл сохраняемый на диске. Поэтому его можно открыть и смотреть |