From: Philipp Spitzer Date: Wed, 22 Jun 2011 21:33:29 +0000 (+0000) Subject: The database is now created from the program. We don't need to copy or provide fosdem... X-Git-Tag: 0.5.0~65 X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/commitdiff_plain/4b8ce66f4c91fa654884a3c3bb14e10a4224328a The database is now created from the program. We don't need to copy or provide fosdem.sqlite anymore. --- diff --git a/src/db.qrc b/src/db.qrc index 37282e0..03d8d30 100644 --- a/src/db.qrc +++ b/src/db.qrc @@ -1,6 +1,6 @@ - fosdem.sqlite + create_tables.sql diff --git a/src/sql/sqlengine.cpp b/src/sql/sqlengine.cpp index 9b2948b..8e3e780 100644 --- a/src/sql/sqlengine.cpp +++ b/src/sql/sqlengine.cpp @@ -50,12 +50,15 @@ QString SqlEngine::login(const QString &aDatabaseType, const QString &aDatabaseN bool result = false; if(!QFile::exists(aDatabaseName)) // the DB (tables) doesn't exists, and so we have to create one { - // copy conference Db from resource, instead of creating - // empty tables and then parsing the schedule - QFile dbFile(aDatabaseName); - QFile(":/fosdem.sqlite").copy(aDatabaseName); - dbFile.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ReadGroup | QFile::WriteGroup); - database.open(); + // create Db + if (!database.open()) qDebug() << "Could not open database" << database.lastError(); + QFile file(":/create_tables.sql"); + file.open(QIODevice::ReadOnly | QIODevice::Text); + QString allSqlStatements = file.readAll(); + foreach(QString sql, allSqlStatements.split(";")) { + QSqlQuery query(database); + if (!query.exec(sql)) qDebug() << "Could not execute query" << query.lastError(); + } } else {