Посоветуйте как быть: есть достаточно много кода, основанного на QSettings, возникла необходимость хранить это все в SQL базе. Хотелось бы малой кровью, т.е. что-то с интерфейсом QSettings либо как-то сам QSettings сериализовать/десериализовать чтоб инстанцировать его из базы... Никто чем-то подобным не замораивался? Может идеи какие есть?
badguy, Можно создать собственный формат с помощью:
http://crossplatform.ru/documentation/qtdoc4.3/qsettings.php#registerFormat
Добавлю свой вариант в старую тему. Можно использовать формат INI и его хранить в БД в текстовом виде. Я думаю это лучше чем использовать BLOB.
И я добавлю свой вариант в старую тему. Класс с интерфейсом идентичным QSettings:
http://gitorious.org/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;
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)