crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Базы данных
Litkevich Yuriy
  опции профиля:
сообщение 26.5.2008, 20:24
Сообщение #11


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

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

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




Репутация:   94  


ViGOur, да можно и так как он, открывать/закрывать. Непонятно почему ошибку при закрытии выдает. Arceny, у тебя нигде модели нет связаной с БД, той что из концепции Модель/Представление ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Arceny
  опции профиля:
сообщение 26.5.2008, 20:25
Сообщение #12


Студент
*

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

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




Репутация:   0  


В общем всё понятно. В моей переменной cnf.dbType (QString) как раз и хранится тип драйвера БД - QSQLITE или QPSQL. В таком случае мне будет логичнее создать 2 объекта QSqlDatabase, в первом будет БД типа QSQLITE, во втором - QPSQL. При необходимости изменить хост/имя базы я вызываю db.close(), потом db.set*(), потом db.open() ... Так? Таким образом QSqlDatabase::removeDatabase() для перезагрузки драйвера под другой тип базы вызвать не прийдётся.

Нет, модели ещё нет. Модель будет :-)

Сообщение отредактировал Arceny - 26.5.2008, 20:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.5.2008, 20:27
Сообщение #13


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

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

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




Репутация:   94  


Цитата(Arceny @ 27.5.2008, 0:25) Link
Таким образом QSqlDatabase::removeDatabase() для перезагрузки драйвера под другой тип базы вызвать не прийдётся.

все верно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 26.5.2008, 20:31
Сообщение #14


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Угу, именно так.
Просто в данном случае QSqlDatabase является синглтоном, а при вызове:
QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first");
QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second");
создаются два именованных синглтона, и их можно создать сколько угодно.

Работать всеравно, что работаешь с одной БД. В принципе так оно и получается.

Сообщение отредактировал ViGOur - 26.5.2008, 20:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.5.2008, 22:50
Сообщение #15


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

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

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




Репутация:   94  


На счет этого сообщения:
Цитата(Litkevich Yuriy @ 18.5.2008, 1:47) Link
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.

Перевод такой:
Цитата
QSqlDatabasePrivate::removeDatabase: соединение 'qt_sql_default_connection' по-прежнему находится в использовании, все запросы, перестанут работать.

Т.е. это не ошибка а предупреждение.
Я тут в своей софтине проверил, ругань идет только в консоль отладки, а в GUI'ях нету - можно игнорить, я так думаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 22.12.2025, 10:22