yacreader/YACReaderLibrary/db/data_base_management.cpp
Luis Ángel San Martín 3533a9ec64 a?adido el codigo del tree model
modificada la funci?n de creaci?n de la base de datos (se crea la estructura de directorios, los c?mics y comic_info)

falta determinar qu? informaci?n habr? finalmente en la BD y tratar adecuadamente los errores
adem?s habr?a que mover el c?digo relacionado con la base de datos a la clase DataBaseManagement.
2012-05-24 17:10:28 +02:00

52 lines
1.4 KiB
C++

#include "data_base_management.h"
#include <QtCore>
DataBaseManagement::DataBaseManagement()
:QObject(),dataBasesList()
{
}
TreeModel * DataBaseManagement::newTreeModel(QString path)
{
//la consulta se ejecuta...
QSqlQuery selectQuery(loadDatabase(path));
selectQuery.setForwardOnly(true);
selectQuery.exec("select * from folder order by parentId,name");
return new TreeModel(selectQuery);
}
QSqlDatabase DataBaseManagement::createDatabase(QString name, QString path)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(QDir::cleanPath(path) + "/" + name + ".ydb");
if (!db.open())
qDebug() << db.lastError();
else {
qDebug() << db.tables();
db.close();
}
return db;
}
QSqlDatabase DataBaseManagement::loadDatabase(QString path)
{
//TODO check path
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(path);
if (!db.open()) {
/*QMessageBox::critical( 0, QObject::tr("Cannot open database"),
QObject::tr("Unable to establish a database connection.\n"
"This example needs SQLite support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);*/
//se devuelve una base de datos vacía e inválida
return QSqlDatabase();
}
//devuelve la base de datos
return db;
}