*/
#include <QtCore/QDir>
+#include <QtCore/QDebug>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlError>
#include "db.h"
-#include <QDebug>
namespace
{
- const QString SQL_DRIVER = "QSQLITE";
- const QString SQL_DATABASE = ".jenirok.db";
+ const QString SQL_DRIVER = "QSQLITE";
+ const QString SQL_DATABASE = ".jenirok.db";
}
bool DB::initialized_ = false;
bool DB::connect()
{
- if(!initialized_)
- {
- db_ = QSqlDatabase::addDatabase(SQL_DRIVER);
- QString path = QDir::home().path() + QDir::separator() + SQL_DATABASE;
- db_.setDatabaseName(QDir::toNativeSeparators(path));
- }
-
- bool ret = db_.open();
-
- if(!ret)
- {
- QSqlError error = db_.lastError();
- qDebug() << error.text();
- }
-
- if(ret && !initialized_)
- {
- QSqlQuery query("SELECT value FROM settings WHERE name = 'initialized'");
-
- if(!query.next())
- {
- ret = createTables();
- }
- }
-
- if(!initialized_)
- {
- initialized_ = true;
- }
-
- return ret;
+ if(!initialized_)
+ {
+ db_ = QSqlDatabase::addDatabase(SQL_DRIVER);
+ QString path = QDir::home().path() + QDir::separator() + SQL_DATABASE;
+ db_.setDatabaseName(QDir::toNativeSeparators(path));
+ }
+
+ bool ret = db_.open();
+
+ if(!ret)
+ {
+ QSqlError error = db_.lastError();
+ qDebug() << error.text();
+ }
+
+ if(ret && !initialized_)
+ {
+ QSqlQuery query("SELECT value FROM settings WHERE name = 'initialized'");
+
+ if(!query.next())
+ {
+ ret = createTables();
+ }
+ }
+
+ if(!initialized_)
+ {
+ initialized_ = true;
+ }
+
+ return ret;
}
void DB::disconnect()
{
- db_.close();
+ db_.close();
}
void DB::removeDatabase()
{
- db_.close();
- db_ = QSqlDatabase();
- QSqlDatabase::removeDatabase(QSqlDatabase::defaultConnection);
- initialized_ = false;
+ if(!initialized_)
+ {
+ return;
+ }
+
+ db_.close();
+ db_ = QSqlDatabase();
+ QSqlDatabase::removeDatabase(QSqlDatabase::defaultConnection);
+ initialized_ = false;
}
bool DB::connected()
{
- return db_.isOpen();
+ return db_.isOpen();
}
QSqlDatabase& DB::instance()
{
- return db_;
+ return db_;
}
bool DB::createTables()
{
- QSqlQuery query;
+ QSqlQuery query;
- bool ret = true;
+ bool ret = true;
- ret = ret && query.exec("CREATE TABLE cache (id INTEGER PRIMARY KEY, number VARCHAR(32) NOT NULL UNIQUE, name VARCHAR(255) NOT NULL, street VARCHAR(255) NOT NULL, city VARCHAR(255) NOT NULL)");
- ret = ret && query.exec("CREATE TABLE settings (name VARCHAR(255) NOT NULL PRIMARY KEY, value VARCHAR(255) NOT NULL)");
- ret = ret && query.exec("INSERT INTO settings(name, value) VALUES('initialized', '1')");
+ ret = ret && query.exec("CREATE TABLE cache (id INTEGER PRIMARY KEY, number VARCHAR(32) NOT NULL UNIQUE, name VARCHAR(255) NOT NULL, street VARCHAR(255) NOT NULL, city VARCHAR(255) NOT NULL)");
+ ret = ret && query.exec("CREATE TABLE settings (name VARCHAR(255) NOT NULL PRIMARY KEY, value VARCHAR(255) NOT NULL)");
+ ret = ret && query.exec("INSERT INTO settings(name, value) VALUES('initialized', '1')");
- return ret;
+ return ret;
}