Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [SQLite, Qt4] SELECT отображает удаленные данные, Дублирование данных 
:(
    Опции темы
Nikys
Дата 17.5.2013, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.5.2013

Репутация: нет
Всего: нет



Программирую базу данных под управлением Qt на SQLite. Внезапно обнаружил, что если я удаляю некоторые данные с помощью DELETE, то они обнаруживаются с помощью SELECT. Выявил при построении таблицы QTableView на основе модели QSqlQueryModel.
Создание таблицы:

Код

CREATE TABLE watch ( number INTEGER PRIMARY KEY NOT NULL, name VARCHAR(30), 
team VARCHAR(30), tallent VARCHAR(5), experience VARCHAR(5) );


Добавление элемента:
Код

INSERT INTO watch (number, name, team, tallent, experience) 
VALUES (%1, '%2', '%3', '%4', '%5');


Разумеется, на месте %1 и других идут конкретные строки.
Удаление элемента:
Код

DELETE FROM watch WHERE name = '%1';


Выполнение команды происходит успешно (.exec() возвращает true).
Зато, если добавить элемент с ранее существовавшим name, то SELECT будет находить оба значения.
Проблема ли в моей реализации, или надо по-другому удалять/искать неудаленные значения?
Заранее благодарен, всем спасибо!
PM MAIL   Вверх
Fortop
Дата 17.5.2013, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(Nikys @  17.5.2013,  09:55 Найти цитируемый пост)
Проблема ли в моей реализации, или надо по-другому удалять/искать неудаленные значения?

подключись к БД через какую-нибудь админку/консоль и проверь свои запросы ручками

может у тебя что-то кешируется?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Zloxa
Дата 17.5.2013, 14:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(Fortop @  17.5.2013,  12:43 Найти цитируемый пост)
может у тебя что-то кешируется? 

а меня смущает что вставляется в name строка '%2', а удаляется по критерию равенству на  '%1'

Это сообщение отредактировал(а) Zloxa - 17.5.2013, 14:31


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Fortop
Дата 17.5.2013, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(Zloxa @  17.5.2013,  14:30 Найти цитируемый пост)
а меня смущает что вставляется в name строка '%2', а удаляется по критерию равенству на  '%1'

Ну, я, надеюсь, %2 из 1го запроса и %1 из 2го это просто порядковый номер аргумента smile

Если это не так, то забавно smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Nikys
Дата 18.5.2013, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.5.2013

Репутация: нет
Всего: нет



%1 - это для аргумента строки QString. Аргумент сначала указывается,а потом строка передается на исполнение к нужному query.
Хм,а как можно с SQLite через админку работать?Это разве не встраиваемая система?
А вообще,не совсем понял,что дает комманда СОММIT, можете мне объяснить?То есть,выделенная транзакция выполняется сразу же?Мне просто предлагали добавить,но это проблему не решило
PM MAIL   Вверх
Nikys
Дата 18.5.2013, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.5.2013

Репутация: нет
Всего: нет



Все работает. Просто я дурак. Удалял не по тому критерию (по имени, а не комманде). Прошу прощения за тревогу smile Переклинило)
PM MAIL   Вверх
Fortop
Дата 19.5.2013, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(Nikys @  18.5.2013,  00:01 Найти цитируемый пост)
Хм,а как можно с SQLite через админку работать?Это разве не встраиваемая система?

хранилище БД для него это обычный файл сохраняемый на диске.
Поэтому его можно открыть и смотреть


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0868 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.