-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdbhandler.cpp
More file actions
122 lines (99 loc) · 2.94 KB
/
dbhandler.cpp
File metadata and controls
122 lines (99 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "dbhandler.h"
DBHandler::DBHandler(QObject *parent) : QObject(parent)
{
qDebug()<<"DbHandler created";
}
DBHandler::~DBHandler()
{
qDebug()<<"DbHandler destroyed";
}
bool DBHandler::connect()
{
//Using SQLite db driver
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbName);
if(db.open()){
QSqlQuery query;
return query.exec("CREATE TABLE IF NOT EXISTS my_table(t_id INTEGER PRIMARY KEY AUTOINCREMENT, "
"date_time TEXT, output TEXT, books TEXT, parsing_time INTEGER, min_word_length INTEGER)");
}
else{
return false;
}
}
//writing to three tables: table, book, contains
bool DBHandler::writeData(QString& output, long long elapsed_seconds, QList<QString>* books, int minWordLength)
{
QMessageBox msgBox;
//Checking if output is not empty
if(output.isEmpty()){
msgBox.setText("Cannot save empty workspace");
msgBox.exec();
return false;
}
//Transferring books to QString
QString booksString;
foreach(QString book,*books){
booksString.append(book).append(",");
}
qDebug()<<booksString;
QSqlQuery query;
query.prepare("INSERT INTO my_table (date_time, output, books, parsing_time, min_word_length) VALUES (datetime('now'), ?, ?, ?, ?)");
query.addBindValue(output);
query.addBindValue(booksString);
query.addBindValue((int) elapsed_seconds);
query.addBindValue(minWordLength);
if (query.exec()){
msgBox.setText("Saved to Database");
msgBox.exec();
return true;
}
else{
msgBox.setText("Cannot write to Database<br/>Error: " + query.lastError().text());
msgBox.exec();
return false;
}
}
/**
* @brief DBHandler::readDbIndex
* @return returning date_time of all available entries
*/
QSharedPointer<QList<QString>> DBHandler::readDbIndex()
{
QSqlQuery query;
query.exec("SELECT date_time FROM my_table");
while (query.next()) {
indexList->append(query.value(0).toString());
}
return indexList;
}
QSharedPointer<QList<QString> > DBHandler::readDbData(QString date_time)
{
QSqlQuery query;
query.prepare("SELECT books, min_word_length, parsing_time, output FROM my_table WHERE date_time = ?");
query.addBindValue(date_time);
query.exec();
query.next();
//Deleting data from previous requests
if(dataList->size() > 0)
{
dataList->clear();
}
dataList->append(query.value(0).toString());
dataList->append(query.value(1).toString());
dataList->append(query.value(2).toString());
dataList->append(query.value(3).toString());
return dataList;
}
/** Deletes entry from a database
* @brief DBHandler::deleteEntry
* @param entry
* @return
*/
bool DBHandler::deleteEntry(QString &entry)
{
QSqlQuery query;
query.prepare("DELETE FROM my_table WHERE date_time = ?");
query.addBindValue(entry);
return query.exec();
}