+void SqlEngine::deleteConference(int id)
+{
+ QSqlDatabase db = QSqlDatabase::database();
+
+ if ( !db.isValid() || !db.isOpen()) {
+ return;
+ }
+
+ beginTransaction();
+
+ QHash<QString, QVariant> params;
+ params["xid_conference"] = id;
+ execQueryWithParameter(db, "DELETE FROM LINK WHERE xid_conference = :xid_conference", params);
+ execQueryWithParameter(db, "DELETE FROM EVENT_ROOM WHERE xid_conference = :xid_conference", params);
+ execQueryWithParameter(db, "DELETE FROM EVENT_PERSON WHERE xid_conference = :xid_conference", params);
+ execQueryWithParameter(db, "DELETE FROM EVENT WHERE xid_conference = :xid_conference", params);
+ execQueryWithParameter(db, "DELETE FROM CONFERENCE WHERE id = :xid_conference", params);
+ execQuery(db, "DELETE FROM ROOM WHERE NOT EXISTS(SELECT * FROM EVENT_ROOM WHERE xid_room = ROOM.id)");
+ execQuery(db, "DELETE FROM PERSON WHERE NOT EXISTS(SELECT * FROM EVENT_PERSON WHERE xid_person = PERSON.id)");
+
+ commitTransaction();
+}
+