-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.cpp
More file actions
105 lines (96 loc) · 3.18 KB
/
db.cpp
File metadata and controls
105 lines (96 loc) · 3.18 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
#include "db.h"
DB::DB()
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/tmp/my.db");
if (!db.open())
{
qDebug()<<query.lastError();
}
query = QSqlQuery(db);
query.exec("CREATE TABLE IF NOT EXISTS event (id INTEGER PRIMARY KEY AUTOINCREMENT,"
"name NVARCHAR(20) NOT NULL,"
"place NVARCHAR(20),"
"starttime NVARCHAR(50) NOT NULL,"
"endtime NVARCHAR(50) NOT NULL,"
"type INTEGER NOT NULL);");
}
void DB::dropDB()
{
query = QSqlQuery(db);
query.exec("DROP TABLE IF EXISTS event;");
}
void DB::addEvent(QString name, QString place, QDateTime startTime, QDateTime endTime, int type)
{
query = QSqlQuery(db);
query.prepare("INSERT INTO event (name, place, starttime, endtime, type) VALUES(:name, :place, :start, :end, :type);");
query.bindValue(":name", name);
query.bindValue(":place", place);
query.bindValue(":start", startTime.toString());
query.bindValue(":end", endTime.toString());
query.bindValue(":type", type);
bool success = query.exec();
if (!success)
{
qDebug()<<"addEvent:"<<query.lastError();
}
}
QSqlQuery DB::readEvent()
{
query = QSqlQuery(db);
query.exec("SELECT * FROM event;");
return query;
}
QSqlQuery DB::readAllMyEvent()
{
query = QSqlQuery(db);
query.exec("SELECT * FROM event WHERE type = 0");
return query;
}
void DB::deleteEvent(QString name, QString place, QDateTime startTime, QDateTime endTime, int type)
{
query = QSqlQuery(db);
query.prepare("DELETE FROM event WHERE name = :name AND place = :place AND starttime = :start AND endtime = :end AND type = :type;");
query.bindValue(":name", name);
query.bindValue(":place", place);
query.bindValue(":start", startTime.toString());
query.bindValue(":end", endTime.toString());
query.bindValue(":type", type);
if(!query.exec())
{
qDebug()<<query.lastError();
}
}
void DB::deleteAllYourEvent()
{
query = QSqlQuery(db);
query.prepare("DELETE FROM event WHERE type = :type;");
query.bindValue(":type", 1);
if(!query.exec())
{
qDebug()<< "DB::deleteAllYourEvent()" << query.lastError();
}
}
void DB::updateEvent(QString name, QString place, QDateTime startTime, QDateTime endTime, int type, QString nameOld, QString placeOld, QDateTime startOld, QDateTime endOld)
{
if(type != 0)
{
qDebug() << "Can't update others' events\n";
return;
}
query = QSqlQuery(db);
query.prepare("UPDATE event SET name = :name, place = :place, starttime = :start, endtime = :end"
" WHERE name = :oldname AND place = :oldplace AND starttime = :oldstart AND endtime = :oldend AND type = 0;");
query.bindValue(":name", name);
query.bindValue(":place", place);
query.bindValue(":start", startTime.toString());
query.bindValue(":end", endTime.toString());
query.bindValue(":oldname", nameOld);
query.bindValue(":oldplace", placeOld);
query.bindValue(":oldstart", startOld.toString());
query.bindValue(":oldend", endOld.toString());
if(!query.exec())
{
qDebug()<< "DB::updateEvent()" << query.lastError();
}
}