crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как очистить базу данных?, QSQLITE
RazrFalcon
  опции профиля:
сообщение 24.4.2011, 21:13
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


У меня DB используется в качестве table cached.
Иногда, мне нужно или ее вообще удалить или очистить полностью.
А у меня, новые данные просто в конец дописываются.
Пробовал так:
QSqlQuery query;
query.prepare("DELETE * FROM tags");
query.exec();
//так
db->removeDatabase("my.db");
//так
db->close();
//так
QSqlDatabase::removeDatabase(QSqlDatabase::database().connectionName());
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
RazrFalcon
  опции профиля:
сообщение 26.4.2011, 20:30
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


После эксперементов снова слетело.
Мне нужно создать базу, 1-н раз.
Затем мы ее заполняем и выводим в QTableView.
Затем нужно ее очистить, структура должна остатся.
И снова заполнить.
Делаю так:
//создаю в MainWindow::MainWindow(...)
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");

//в функции заполнения
QSqlDatabase db = QSqlDatabase::database();
QSqlQuery query(db);
//... заполнение

//функция очистки
QSqlDatabase db = QSqlDatabase::database();
QSqlQuery query(db);
query.exec("DELETE FROM tags");

В итоге получаю дублирования. Все строки по 2-а раза в таблице. Что не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.3.2025, 13:15