1 #include "databasemanager.h"
3 #include <QSqlDatabase>
4 #include <QSqlTableModel>
12 const QString DatabaseManager::DB_FILENAME = QString("my.db.sqlite");
13 const QString DatabaseManager::DB_TABLE_NAME_PLATFORM = QString("platform");
15 //QSqlDatabase DatabaseManager::db = QSqlDatabase::addDatabase("QSQLITE");
17 DatabaseManager::DatabaseManager(QObject *parent)
21 DatabaseManager::~DatabaseManager()
24 bool DatabaseManager::openDB()
26 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
27 db.setDatabaseName(DatabaseManager::getDbPath());
31 /*QSqlError DatabaseManager::lastError()
33 return db.lastError();
36 /*bool DatabaseManager::deleteDB()
39 return QFile::remove(getDbPath());
42 QString DatabaseManager::getDbPath()
46 path.append(QDir::home().path());
47 path.append(QDir::separator()).append(DB_FILENAME);
49 path.append(DB_FILENAME);
55 * Check if database already exists.
56 * Returns false if doesn't or we don't have a connection.
58 bool DatabaseManager::dbExists()
61 query.exec("SELECT name FROM sqlite_master WHERE name='" + DB_TABLE_NAME_PLATFORM + "'");
65 bool DatabaseManager::createDB()
72 ret = query.exec("create table platform "
73 "(id integer primary key, "
75 "filename varchar(125))");
76 /*ret = query.exec("create table media "
77 "(id integer primary key, "
79 "filename varchar(125))");*/
84 int DatabaseManager::insertPlatform(QString name, QString filename)
90 //http://www.sqlite.org/autoinc.html
91 // NULL = is the keyword for the autoincrement to generate next value
93 query.prepare("insert into platform (id, name, filename) "
94 "values (NULL, :name, :filename)");
95 query.bindValue(":name", name);
96 query.bindValue(":filename", filename);
99 /*ret = query.exec(QString("insert into person values(NULL,'%1','%2',%3)")
100 .arg(firstname).arg(lastname).arg(age));*/
101 // Get database given autoincrement value
104 // http://www.sqlite.org/c3ref/last_insert_rowid.html
105 QVariant var = query.lastInsertId();
106 if (var.isValid()) newId = var.toInt();
112 QString DatabaseManager::getPlatform(int id)
115 QSqlQuery query(QString("select firstname, lastname from person where id = %1").arg(id));
119 name.append(query.value(0).toString());
120 name.append(query.value(1).toString());
125 QSqlTableModel* DatabaseManager::getPlatforms()
127 QSqlTableModel *model = new QSqlTableModel(this);
128 model->setTable(DB_TABLE_NAME_PLATFORM);
129 model->setSort(Platform_Name, Qt::AscendingOrder);
130 model->setHeaderData(Platform_Name, Qt::Horizontal, tr("Name"));