}
AbstractSqlStorage::~AbstractSqlStorage() {
+ QHash<QPair<QString, int>, QSqlQuery *>::iterator iter = _queryCache.begin();
+ while(iter != _queryCache.end()) {
+ delete *iter;
+ iter = _queryCache.erase(iter);
+ }
+
{
QSqlDatabase db = QSqlDatabase::database("quassel_connection");
db.commit();
return true;
}
+void AbstractSqlStorage::sync() {
+ QHash<QPair<QString, int>, 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();
query->prepare(queryString(queryName, version));
_queryCache[queryId] = query;
}
-
return _queryCache[queryId];
}
QStringList queries;
QDir dir = QDir(QString(":/SQL/%1/%2/").arg(engineName()).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;
}
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;
}