Replaced all QSQLDatabase::exec() calls.

This commit is contained in:
Martin Rotter 2013-12-21 15:39:55 +01:00
parent a5d6b23f89
commit f837e43d07
3 changed files with 28 additions and 29 deletions

View File

@ -72,19 +72,20 @@ QSqlDatabase DatabaseFactory::initialize(const QString &connection_name) {
qPrintable(database.lastError().text())); qPrintable(database.lastError().text()));
} }
else { else {
// TODO: smazat QSQLDatabase::exec() všude QSqlQuery query_db(database);
// a nahradit jej funkcí QSQLquery::exec()
database.exec("PRAGMA encoding = \"UTF-8\""); // TODO: smazat QSQLDatabase::exec() všude
database.exec("PRAGMA synchronous = OFF"); // a nahradit jej funkcí QSQLquery::exec()
database.exec("PRAGMA journal_mode = MEMORY"); query_db.exec("PRAGMA encoding = \"UTF-8\"");
database.exec("PRAGMA count_changes = OFF"); query_db.exec("PRAGMA synchronous = OFF");
database.exec("PRAGMA temp_store = MEMORY"); query_db.exec("PRAGMA journal_mode = MEMORY");
query_db.exec("PRAGMA count_changes = OFF");
query_db.exec("PRAGMA temp_store = MEMORY");
// Sample query which checks for existence of tables. // Sample query which checks for existence of tables.
QSqlQuery query = database.exec("SELECT value FROM Information WHERE key = 'schema_version'"); query_db.exec("SELECT value FROM Information WHERE key = 'schema_version'");
if (query.lastError().isValid()) { if (query_db.lastError().isValid()) {
qWarning("Error occurred. Database is not initialized. Initializing now."); qWarning("Error occurred. Database is not initialized. Initializing now.");
QFile file_init(APP_MISC_PATH + QDir::separator() + APP_DB_INIT_FILE); QFile file_init(APP_MISC_PATH + QDir::separator() + APP_DB_INIT_FILE);
@ -97,29 +98,30 @@ QSqlDatabase DatabaseFactory::initialize(const QString &connection_name) {
QStringList statements = QString(file_init.readAll()).split(APP_DB_INIT_SPLIT, QStringList statements = QString(file_init.readAll()).split(APP_DB_INIT_SPLIT,
QString::SkipEmptyParts); QString::SkipEmptyParts);
database.exec("BEGIN TRANSACTION"); query_db.exec("BEGIN TRANSACTION");
foreach(const QString &statement, statements) { foreach(const QString &statement, statements) {
query = database.exec(statement); query_db.exec(statement);
if (query.lastError().isValid()) {
if (query_db.lastError().isValid()) {
qFatal("Database initialization failed. Initialization script '%s' is not correct.", qFatal("Database initialization failed. Initialization script '%s' is not correct.",
APP_DB_INIT_FILE); APP_DB_INIT_FILE);
} }
} }
database.exec("COMMIT"); query_db.exec("COMMIT");
qDebug("Database backend should be ready now."); qDebug("Database backend should be ready now.");
} }
else { else {
query.next(); query_db.next();
qDebug("Database connection '%s' to file '%s' seems to be established.", qDebug("Database connection '%s' to file '%s' seems to be established.",
qPrintable(connection_name), qPrintable(connection_name),
qPrintable(QDir::toNativeSeparators(database.databaseName()))); qPrintable(QDir::toNativeSeparators(database.databaseName())));
qDebug("Database has version '%s'.", qPrintable(query.value(0).toString())); qDebug("Database has version '%s'.", qPrintable(query_db.value(0).toString()));
} }
query.finish(); query_db.finish();
} }
return database; return database;

View File

@ -209,7 +209,7 @@ void FeedsModel::loadFromDatabase() {
FeedAssignment feeds; FeedAssignment feeds;
// Obtain data for categories from the database. // Obtain data for categories from the database.
QSqlQuery query_categories = database.exec("SELECT * FROM Categories;"); QSqlQuery query_categories("SELECT * FROM Categories;", database);
if (query_categories.lastError().isValid()) { if (query_categories.lastError().isValid()) {
qFatal("Query for obtaining categories failed."); qFatal("Query for obtaining categories failed.");
@ -238,7 +238,7 @@ void FeedsModel::loadFromDatabase() {
} }
// All categories are now loaded. // All categories are now loaded.
QSqlQuery query_feeds = database.exec("SELECT * FROM Feeds;"); QSqlQuery query_feeds("SELECT * FROM Feeds;", database);
if (query_feeds.lastError().isValid()) { if (query_feeds.lastError().isValid()) {
qFatal("Query for obtaining feeds failed."); qFatal("Query for obtaining feeds failed.");

View File

@ -63,23 +63,20 @@ QString FeedsModelFeed::typeToString(FeedsModelFeed::Type type) {
void FeedsModelFeed::updateCounts(bool including_total_count) { void FeedsModelFeed::updateCounts(bool including_total_count) {
QSqlDatabase database = DatabaseFactory::getInstance()->addConnection("FeedsModelFeed"); QSqlDatabase database = DatabaseFactory::getInstance()->addConnection("FeedsModelFeed");
QSqlQuery query_all(database);
if (including_total_count) { if (including_total_count) {
// Obtain count of all messages. if (query_all.exec(QString("SELECT count() FROM messages "
QSqlQuery query_all = database.exec(QString("SELECT count() FROM messages " "WHERE feed = %1 AND deleted = 0;").arg(id())) &&
"WHERE feed = %1 AND deleted = 0;").arg(id())); query_all.next()) {
if (query_all.next()){
m_totalCount = query_all.value(0).toInt(); m_totalCount = query_all.value(0).toInt();
} }
} }
// Obtain count of unread messages. // Obtain count of unread messages.
QSqlQuery query_unread = database.exec(QString("SELECT count() FROM messages " if (query_all.exec(QString("SELECT count() FROM messages "
"WHERE feed = %1 AND deleted = 0 AND read = 0;").arg(id())); "WHERE feed = %1 AND deleted = 0 AND read = 0;").arg(id())) &&
if (query_unread.next()) { query_all.next()) {
m_unreadCount = query_unread.value(0).toInt(); m_unreadCount = query_all.value(0).toInt();
} }
} }