![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Nikys |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 9.5.2013 Репутация: нет Всего: нет |
Программирую базу данных под управлением Qt на SQLite. Внезапно обнаружил, что если я удаляю некоторые данные с помощью DELETE, то они обнаруживаются с помощью SELECT. Выявил при построении таблицы QTableView на основе модели QSqlQueryModel.
Создание таблицы:
Добавление элемента:
Разумеется, на месте %1 и других идут конкретные строки. Удаление элемента:
Выполнение команды происходит успешно (.exec() возвращает true). Зато, если добавить элемент с ранее существовавшим name, то SELECT будет находить оба значения. Проблема ли в моей реализации, или надо по-другому удалять/искать неудаленные значения? Заранее благодарен, всем спасибо! |
||||||
|
|||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
подключись к БД через какую-нибудь админку/консоль и проверь свои запросы ручками может у тебя что-то кешируется? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
а меня смущает что вставляется в name строка '%2', а удаляется по критерию равенству на '%1' Это сообщение отредактировал(а) Zloxa - 17.5.2013, 14:31 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
Ну, я, надеюсь, %2 из 1го запроса и %1 из 2го это просто порядковый номер аргумента ![]() Если это не так, то забавно ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Nikys |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 9.5.2013 Репутация: нет Всего: нет |
%1 - это для аргумента строки QString. Аргумент сначала указывается,а потом строка передается на исполнение к нужному query.
Хм,а как можно с SQLite через админку работать?Это разве не встраиваемая система? А вообще,не совсем понял,что дает комманда СОММIT, можете мне объяснить?То есть,выделенная транзакция выполняется сразу же?Мне просто предлагали добавить,но это проблему не решило |
|||
|
||||
Nikys |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 9.5.2013 Репутация: нет Всего: нет |
Все работает. Просто я дурак. Удалял не по тому критерию (по имени, а не комманде). Прошу прощения за тревогу
![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
хранилище БД для него это обычный файл сохраняемый на диске. Поэтому его можно открыть и смотреть -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |