-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathDBService.cpp
More file actions
123 lines (104 loc) · 3.14 KB
/
DBService.cpp
File metadata and controls
123 lines (104 loc) · 3.14 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
122
123
#include "DBService.h"
namespace DBService {
DBConnection::DBConnection(const QString& connection_string_) : a_connection_string(connection_string_) {};
QSqlDatabase DBConnection::getDatabase() const { return this->a_database; }
QString DBConnection::getConnectionString() const { return this->a_connection_string; }
void DBConnection::setConnectionString(const QString& connection_string_) { this->a_connection_string = connection_string_; }
void DBConnection::databaseConnectionOpen() {
try
{
this->a_database = QSqlDatabase::addDatabase("QODBC");
a_database.setDatabaseName(DBConnection::getConnectionString());
if (a_database.open()) {
PLOG_INFO << "connected to db.";
}
}
catch (const std::exception& exception)
{
PLOG_ERROR << "Exception while connecting to db: " << exception.what();
}
}
void DBConnection::databaseConnectionClose() {
try
{
if (a_database.isOpen()) {
a_database.close();
PLOG_INFO << "connection to db closed.";
}
}
catch (const std::exception& exception)
{
PLOG_ERROR << "Exception while closing connection to db: " << exception.what();
}
}
void DBConnection::databaseConnectionOpenAsync() {
QtConcurrent::run([this]() {
try
{
a_database = QSqlDatabase::addDatabase("QODBC");
a_database.setDatabaseName(DBConnection::getConnectionString());
if (a_database.isOpen()) {
PLOG_INFO << "Async connection to db.";
}
else {
PLOG_ERROR << "Falied to connect to db.";
}
}
catch (const std::exception& exception)
{
PLOG_ERROR << "Exception while async connecting to db: " << exception.what();
}
});
}
void DBConnection::databaseConnectionCloseAsync() {
QtConcurrent::run([this]() {
try
{
if (a_database.isOpen()) {
a_database.close();
PLOG_INFO << "async connection to db closed.";
}
}
catch (const std::exception& exception)
{
PLOG_ERROR << "Exception while async closing connection to db: " << exception.what();
}
});
}
//QSqlQueryModel* DBConnection::databaseQuery(const QString& query_string_) {
// QSqlQueryModel* model = new QSqlQueryModel;
// model->setQuery(query_string_);
// return model;
//}
//void DBConnection::databaseQuery(const QString& query_string, const QVariantList& parameters_) {
// QSqlQuery query;
// query.prepare(query_string);
// for (const QVariant& parameter : parameters_) {
// query.addBindValue(parameter);
// }
// if (query.exec()) {
// QSqlRecord record = query.record();
// qint32 field_count = record.count();
// while (query.next()) {
// for (int i = 0; i < field_count; i++) {
// qDebug() << record.fieldName(i) << ": " << query.value(i);
// }
// }
// }
// else {
// qDebug() << "Query error: " << query.lastError().text();
// }
//}
void DBConnection::databaseQueryFull(const QString& query_string_) {
QSqlQuery query;
query.exec(query_string_);
QSqlRecord record = query.record();
qint32 field_count = record.count();
while (query.next()) {
for (int i = 0; i < field_count; i++) {
qDebug() << record.fieldName(i) << " : " << query.value(i).toString();
}
qDebug() << "----------------------";
}
}
}