1 #include "databasemanager.h"
3 #include <QSqlDatabase>
11 const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
12 QSqlDatabase DatabaseManager::db = QSqlDatabase::addDatabase("QSQLITE");
14 DatabaseManager::DatabaseManager(QObject *parent)
18 DatabaseManager::~DatabaseManager()
21 bool DatabaseManager::openDB()
23 if (DatabaseManager::db.databaseName().isEmpty())
25 DatabaseManager::db.setDatabaseName(DatabaseManager::getDbPath());
27 return DatabaseManager::db.open();
30 QSqlError DatabaseManager::lastError()
32 return db.lastError();
35 bool DatabaseManager::deleteDB()
38 return QFile::remove(getDbPath());
41 QString DatabaseManager::getDbPath()
45 path.append(QDir::home().path());
46 path.append(QDir::separator()).append(DB_FILENAME);
48 path.append(DB_FILENAME);
54 * Check if database already exists.
55 * Returns false if doesn't or we don't have a connection.
57 bool DatabaseManager::dbExists() const
62 cerr << "Database is not connected!" << endl;
66 query.exec("SELECT name FROM sqlite_master WHERE name='person'");
70 bool DatabaseManager::createDB() const
76 ret = query.exec("create table platform "
77 "(id integer primary key, "
79 "filename varchar(125))");
80 /*ret = query.exec("create table media "
81 "(id integer primary key, "
83 "filename varchar(125))");*/
88 int DatabaseManager::insertPlatform(QString name, QString filename)
94 //http://www.sqlite.org/autoinc.html
95 // NULL = is the keyword for the autoincrement to generate next value
97 query.prepare("insert into platform (id, name, filename) "
98 "values (NULL, :name, :filename)");
99 query.bindValue(":name", name);
100 query.bindValue(":filename", filename);
103 /*ret = query.exec(QString("insert into person values(NULL,'%1','%2',%3)")
104 .arg(firstname).arg(lastname).arg(age));*/
105 // Get database given autoincrement value
108 // http://www.sqlite.org/c3ref/last_insert_rowid.html
109 QVariant var = query.lastInsertId();
110 if (var.isValid()) newId = var.toInt();
116 QString DatabaseManager::getPlatform(int id) const
119 QSqlQuery query(QString("select firstname, lastname from person where id = %1").arg(id));
123 name.append(query.value(0).toString());
124 name.append(query.value(1).toString());