94 lines
2.3 KiB
C++
94 lines
2.3 KiB
C++
#include "database.h"
|
|
|
|
#include <QVariant>
|
|
#include <cstring>
|
|
#include <iostream>
|
|
|
|
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<vector<QString>> DataBase::getData2(std::string statement, int cols) {
|
|
|
|
vector<QString> data;
|
|
vector<vector<QString>> 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<vector<QString>> ret = this->getData2(statement, 1);
|
|
|
|
for (auto row : ret) {
|
|
qstrList << row.at(0);
|
|
}
|
|
|
|
} catch (std::exception & e) {
|
|
Q_UNUSED(e);
|
|
}
|
|
return qstrList;
|
|
}
|
|
|
|
vector<vector<QString>> DataBase::getData(std::string statement, int cols) {
|
|
|
|
char * buffer = new char[statement.length() + 1];
|
|
strcpy(buffer, statement.c_str());
|
|
vector<QString> data;
|
|
vector<vector<QString>> 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();
|
|
}
|