use update for events when they are already exists
[toast/confclerk.git] / src / sql / sqlengine.h
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  *
4  * This file is part of fosdem-schedule.
5  *
6  * fosdem-schedule is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the Free
8  * Software Foundation, either version 2 of the License, or (at your option)
9  * any later version.
10  *
11  * fosdem-schedule is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * fosdem-schedule.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 #ifndef SQLENGINE_H
20 #define SQLENGINE_H
21
22 #include <QObject>
23 #include <QHash>
24
25 class QSqlDatabase;
26
27 class SqlEngine : public QObject
28 {
29     Q_OBJECT
30     public:
31         SqlEngine(QObject *aParent = NULL);
32         ~SqlEngine();
33         static void initialize();
34         static void addConferenceToDB(QHash<QString,QString> &aConference);
35         static void addEventToDB(QHash<QString,QString> &aEvent);
36         static void addPersonToDB(QHash<QString,QString> &aPerson);
37         static void addLinkToDB(QHash<QString,QString> &aLink);
38         static void addRoomToDB(QHash<QString,QString> &aRoom);
39
40         static bool beginTransaction();
41         static bool commitTransaction();
42
43         // search Events for ....
44         static int searchEvent(int conferenceId, const QHash<QString,QString> &columns, const QString &keyword);
45     private:
46         static QString login(const QString &aDatabaseType, const QString &aDatabaseName);
47         static bool createTables(QSqlDatabase &aDatabase);
48         static bool execQuery(QSqlDatabase &aDatabase, const QString &aQuery);
49 };
50
51 #endif /* SQLENGINE_H */
52