#include "database.h" #include #include #include using std::vector; DataBase::DataBase() { this->db = new QSqlDatabase(); *this->db = QSqlDatabase::addDatabase("QSQLITE"); this->db->setDatabaseName("Renndatenbank.sqlite"); // std::cout << "Konstruktor Database" << std::endl; } DataBase::~DataBase() { // std::cout << "Destruktor aus Datenbank" << std::endl; delete this->db; // delete this; } vector> DataBase::getData2(std::string statement, int cols) { vector data; vector> lines; bool ok = this->db->open(); QString qstr; if (ok) { QSqlQuery query; query.exec(QString::fromStdString(statement)); while (query.next()) { for (int i = 0; i < cols; i++) { qstr = query.value(i).toString(); data.push_back(qstr); } lines.push_back(data); data.erase(data.begin(), data.begin() + cols); } } this->db->close(); return lines; } QStringList DataBase::getDataQStringList(std::string statement) { QStringList qstrList; try { vector> ret = this->getData2(statement, 1); for (auto row : ret) { qstrList << row.at(0); } } catch (std::exception & e) { Q_UNUSED(e); } return qstrList; } vector> DataBase::getData(std::string statement, int cols) { char * buffer = new char[statement.length() + 1]; strcpy(buffer, statement.c_str()); vector data; vector> lines; bool ok = this->db->open(); QString qstr; if (ok) { QSqlQuery query(buffer); while (query.next()) { for (int i = 0; i < cols; i++) { qstr = query.value(i).toString(); data.push_back(qstr); } lines.push_back(data); data.erase(data.begin(), data.begin() + cols); } } this->db->close(); delete[] buffer; return lines; } void DataBase::setData(std::string statement) { char * buffer = new char[statement.length() + 1]; strcpy(buffer, statement.c_str()); bool ok = this->db->open(); if (ok) { QSqlQuery query(buffer); } this->db->close(); }