crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QSettings в SQL базе
badguy
  опции профиля:
сообщение 5.11.2008, 10:37
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 3.3.2008
Пользователь №: 111

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




Репутация:   0  


Посоветуйте как быть: есть достаточно много кода, основанного на QSettings, возникла необходимость хранить это все в SQL базе. Хотелось бы малой кровью, т.е. что-то с интерфейсом QSettings либо как-то сам QSettings сериализовать/десериализовать чтоб инстанцировать его из базы... Никто чем-то подобным не замораивался? Может идеи какие есть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.11.2008, 11:18
Сообщение #2


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

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

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




Репутация:   94  


badguy, Можно создать собственный формат с помощью:
Format QSettings::registerFormat ( const QString & extension, ReadFunc readFunc, WriteFunc writeFunc, Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive ) [static]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
badguy
  опции профиля:
сообщение 5.11.2008, 12:20
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 3.3.2008
Пользователь №: 111

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 5.11.2008, 11:18) *

Думаю сделать еще проще: файл с настройками хранить в базе в виде BLOB'a, перед инстанцированием объекта QSettings прочитать файл из базы, QSettings инстанцировать конструктором, который принимает имя файла и т.д. в обратную сторону.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 15.3.2010, 9:16
Сообщение #4


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


Добавлю свой вариант в старую тему. Можно использовать формат INI и его хранить в БД в текстовом виде. Я думаю это лучше чем использовать BLOB.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
asvil
  опции профиля:
сообщение 24.4.2010, 15:07
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 21.4.2010
Пользователь №: 1647

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




Репутация:   0  


И я добавлю свой вариант в старую тему. Класс с интерфейсом идентичным QSettings:
QtSqlSettings
Пример кода:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database");

//    db.setHostName("localhost");

if (db.open("admin", "admin")) {
  if (!db.tables().contains("app_settings")) {
    QSqlQuery q = db.exec("CREATE TABLE app_settings "
    "( "                    
    "    key_column text NOT NULL, "                                
    "    value_column text, "
    "    CONSTRAINT app_settings_pk PRIMARY KEY (key_column) "
    ")");
    if (q.lastError().isValid())
      qDebug() << q.lastError().text();
    }
  QtSqlSettings *settings = new QtSqlSettings(db.connectionName());
  settings->setValue("New Value", QStringList() << "First line" << "SecondLine");

  settings->setValue("group1/value1", QVariantList() << 1 << 3);

  settings->setValue("bytearray", QByteArray("bytearray", 9));

  settings->save();

  delete settings;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 0:27