X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fabstractsqlstorage.cpp;h=b20d1dcdcbe9f31d1c03eb6ddeff50a972e5f6db;hb=e0872cf3b3cdb8c52c5a52f32c3140143a29409d;hp=47442705a00a1c90801c66c41820aa7ef842ce9d;hpb=2f05c5d7e94d5e96d2b4bae59140fd3b60a7a62f;p=quassel.git diff --git a/src/core/abstractsqlstorage.cpp b/src/core/abstractsqlstorage.cpp index 47442705..b20d1dcd 100644 --- a/src/core/abstractsqlstorage.cpp +++ b/src/core/abstractsqlstorage.cpp @@ -50,7 +50,7 @@ QSqlDatabase AbstractSqlStorage::logDb() { return db; if(!openDb()) { - qWarning() << "Unable to Open Database" << engineName(); + qWarning() << "Unable to Open Database" << displayName(); qWarning() << " -" << db.lastError().text(); } @@ -102,13 +102,23 @@ bool AbstractSqlStorage::init(const QVariantMap &settings) { return true; } +void AbstractSqlStorage::sync() { + QHash, QSqlQuery *>::iterator iter = _queryCache.begin(); + while(iter != _queryCache.end()) { + delete *iter; + iter = _queryCache.erase(iter); + } + + logDb().commit(); +} + QString AbstractSqlStorage::queryString(const QString &queryName, int version) { if(version == 0) version = schemaVersion(); - QFileInfo queryInfo(QString(":/SQL/%1/%2/%3.sql").arg(engineName()).arg(version).arg(queryName)); + QFileInfo queryInfo(QString(":/SQL/%1/%2/%3.sql").arg(displayName()).arg(version).arg(queryName)); if(!queryInfo.exists() || !queryInfo.isFile() || !queryInfo.isReadable()) { - qWarning() << "Unable to read SQL-Query" << queryName << "for Engine" << engineName(); + qWarning() << "Unable to read SQL-Query" << queryName << "for engine" << displayName(); return QString(); } @@ -141,7 +151,7 @@ QSqlQuery *AbstractSqlStorage::cachedQuery(const QString &queryName) { QStringList AbstractSqlStorage::setupQueries() { QStringList queries; - QDir dir = QDir(QString(":/SQL/%1/%2/").arg(engineName()).arg(schemaVersion())); + QDir dir = QDir(QString(":/SQL/%1/%2/").arg(displayName()).arg(schemaVersion())); foreach(QFileInfo fileInfo, dir.entryInfoList(QStringList() << "setup*", QDir::NoFilter, QDir::Name)) { queries << queryString(fileInfo.baseName()); } @@ -168,10 +178,9 @@ bool AbstractSqlStorage::setup(const QVariantMap &settings) { QStringList AbstractSqlStorage::upgradeQueries(int version) { QStringList queries; - QDir dir = QDir(QString(":/SQL/%1/%2/").arg(engineName()).arg(version)); + QDir dir = QDir(QString(":/SQL/%1/%2/").arg(displayName()).arg(version)); foreach(QFileInfo fileInfo, dir.entryInfoList(QStringList() << "upgrade*", QDir::NoFilter, QDir::Name)) { - qDebug() << queryString(fileInfo.baseName()); - queries << queryString(fileInfo.baseName()); + queries << queryString(fileInfo.baseName(), version); } return queries; } @@ -203,7 +212,7 @@ int AbstractSqlStorage::schemaVersion() { int version; bool ok; - QDir dir = QDir(":/SQL/" + engineName()); + QDir dir = QDir(":/SQL/" + displayName()); foreach(QFileInfo fileInfo, dir.entryInfoList()) { if(!fileInfo.isDir()) continue; @@ -221,13 +230,13 @@ int AbstractSqlStorage::schemaVersion() { bool AbstractSqlStorage::watchQuery(QSqlQuery *query) { if(query->lastError().isValid()) { qWarning() << "unhandled Error in QSqlQuery!"; - qWarning() << " last Query:" << query->lastQuery(); - qWarning() << " executed Query:" << query->executedQuery(); - qWarning() << " bound Values:" << query->boundValues(); - qWarning() << " Error Number:" << query->lastError().number(); - qWarning() << " Error Message:" << query->lastError().text(); - qWarning() << " Driver Message:" << query->lastError().driverText(); - qWarning() << " DB Message:" << query->lastError().databaseText(); + qWarning() << " last Query:\n" << query->lastQuery(); + qWarning() << " executed Query:\n" << query->executedQuery(); + qWarning() << " bound Values:" << query->boundValues(); + qWarning() << " Error Number:" << query->lastError().number(); + qWarning() << " Error Message:" << query->lastError().text(); + qWarning() << " Driver Message:" << query->lastError().driverText(); + qWarning() << " DB Message:" << query->lastError().databaseText(); return false; }