Files
Rennbahn/database.cpp

79 lines
2.0 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;
}
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();
}