crossplatform.ru

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

> БД сохранение и закрытие
Stoptyssin
  опции профиля:
сообщение 14.3.2012, 21:10
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 20.1.2012
Пользователь №: 3145

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




Репутация:   0  


Всем здраствуйте. Суть проблемы: есть база данных из нескольких таблиц, таблицы отображаются через QTableModel и QTableView. Находятся на разных формах, на главной форме есть основная таблица, в которую заносится вся информация с остальных (через вторичные ключи от остальных таблиц). После выполнения запроса- вставки новой инфы в основную таблицу, необходимо сохранить данные и обновить эту таблицу. Пытался вот так:

if(Gmodel->submitAll())
        {
           Gmodel->database().commit();
         }
        else
        {
            Gmodel->database().rollback();
            QMessageBox::warning(this, "", "CloseEvent!", QMessageBox::Yes | QMessageBox::No);
        }

Не получилось вывел следующее:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.

Добавил следующий код в деструктор главной формы:

    QSqlDatabase db = QSqlDatabase::database();
         if (db.isOpen())
         {
             db.close();
             db.removeDatabase(db.connectionName());

        }

Выводит тоже самое, и информация в БД не сохраняется.
Я уже заколебался, просмотрел примеры и кучу форумов посвященных данной проблеме. Заранее спасибо...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 18.3.2012, 11:55
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


1) в первом фрагменте года я не вижу где у тебя транзакция начинается (прежде чем фиксировать или откатывать, её нужно запустить).
вывод указанного сообщения об ошибке не возможен, т.к. в приведённом фрагменте кода нет удаления соединения, видимо ты получаешь это сообщение от второго фрагмента кода.

2) Удалять соединение нужно в соответствии с документацией
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 24.11.2024, 23:57