return db;
if(!openDb()) {
- quWarning() << "Unable to Open Database" << displayName();
- quWarning() << "-" << db.lastError().text();
+ qWarning() << "Unable to Open Database" << displayName();
+ qWarning() << "-" << db.lastError().text();
}
return QSqlDatabase::database("quassel_connection");
return false;
if(installedSchemaVersion() == -1) {
- quError() << "Storage Schema is missing!";
+ qCritical() << "Storage Schema is missing!";
return false;
}
if(installedSchemaVersion() > schemaVersion()) {
- quError() << "Installed Schema is newer then any known Version.";
+ qCritical() << "Installed Schema is newer then any known Version.";
return false;
}
if(installedSchemaVersion() < schemaVersion()) {
- quWarning() << "Installed Schema is not up to date. Upgrading...";
+ qWarning() << "Installed Schema is not up to date. Upgrading...";
if(!upgradeDb())
return false;
}
QFileInfo queryInfo(QString(":/SQL/%1/%2/%3.sql").arg(displayName()).arg(version).arg(queryName));
if(!queryInfo.exists() || !queryInfo.isFile() || !queryInfo.isReadable()) {
- quError() << "Unable to read SQL-Query" << queryName << "for engine" << displayName();
+ qCritical() << "Unable to read SQL-Query" << queryName << "for engine" << displayName();
return QString();
}
return query.trimmed();
}
-QString AbstractSqlStorage::queryString(const QString &queryName) {
- return queryString(queryName, 0);
-}
-
-QSqlQuery *AbstractSqlStorage::cachedQuery(const QString &queryName, int version) {
+QSqlQuery &AbstractSqlStorage::cachedQuery(const QString &queryName, int version) {
QPair<QString, int> queryId = qMakePair(queryName, version);
if(!_queryCache.contains(queryId)) {
QSqlQuery *query = new QSqlQuery(logDb());
query->prepare(queryString(queryName, version));
_queryCache[queryId] = query;
}
- return _queryCache[queryId];
-}
-
-QSqlQuery *AbstractSqlStorage::cachedQuery(const QString &queryName) {
- return cachedQuery(queryName, 0);
+ return *(_queryCache[queryId]);
}
QStringList AbstractSqlStorage::setupQueries() {
Q_UNUSED(settings)
QSqlDatabase db = logDb();
if(!db.isOpen()) {
- quError() << "Unable to setup Logging Backend!";
+ qCritical() << "Unable to setup Logging Backend!";
return false;
}
foreach(QString queryString, setupQueries()) {
QSqlQuery query = db.exec(queryString);
- if(!watchQuery(&query)) {
- quError() << "Unable to setup Logging Backend!";
+ if(!watchQuery(query)) {
+ qCritical() << "Unable to setup Logging Backend!";
return false;
}
}
for(int ver = installedSchemaVersion() + 1; ver <= schemaVersion(); ver++) {
foreach(QString queryString, upgradeQueries(ver)) {
QSqlQuery query = db.exec(queryString);
- if(!watchQuery(&query)) {
- quError() << "Unable to upgrade Logging Backend!";
+ if(!watchQuery(query)) {
+ qCritical() << "Unable to upgrade Logging Backend!";
return false;
}
}
return _schemaVersion;
}
-bool AbstractSqlStorage::watchQuery(QSqlQuery *query) {
- if(query->lastError().isValid()) {
- quError() << "unhandled Error in QSqlQuery!";
- quError() << " last Query:\n" << query->lastQuery();
- quError() << " executed Query:\n" << query->executedQuery();
- quError() << " bound Values:";
- QList<QVariant> list = query->boundValues().values();
+bool AbstractSqlStorage::watchQuery(QSqlQuery &query) {
+ if(query.lastError().isValid()) {
+ qCritical() << "unhandled Error in QSqlQuery!";
+ qCritical() << " last Query:\n" << query.lastQuery();
+ qCritical() << " executed Query:\n" << query.executedQuery();
+ qCritical() << " bound Values:";
+ QList<QVariant> list = query.boundValues().values();
for (int i = 0; i < list.size(); ++i)
- quError() << i << ": " << list.at(i).toString().toAscii().data();
- quError() << " Error Number:" << query->lastError().number();
- quError() << " Error Message:" << query->lastError().text();
- quError() << " Driver Message:" << query->lastError().driverText();
- quError() << " DB Message:" << query->lastError().databaseText();
+ qCritical() << i << ": " << list.at(i).toString().toAscii().data();
+ qCritical() << " Error Number:" << query.lastError().number();
+ qCritical() << " Error Message:" << query.lastError().text();
+ qCritical() << " Driver Message:" << query.lastError().driverText();
+ qCritical() << " DB Message:" << query.lastError().databaseText();
return false;
}