Insert new field xid_conference into table track, room and person.
authorgregor herrmann <gregoa@debian.org>
Wed, 22 Jun 2011 17:51:30 +0000 (17:51 +0000)
committergregor herrmann <gregoa@debian.org>
Wed, 22 Jun 2011 17:51:30 +0000 (17:51 +0000)
src/mvc/track.cpp
src/mvc/track.h
src/sql/sqlengine.cpp

index 447eec3..9cadb47 100644 (file)
 #include "track.h"
 
 QString const Track::sTableName = QString("track");
-int const Track::sTableColCount = 2;
+int const Track::sTableColCount = 3;
+const QString Track::CONFERENCEID = "xid_conference";
 const QString Track::NAME = "name";
 
 QSqlRecord const Track::sColumns = Track::toRecord(QList<QSqlField>()
     << QSqlField("id", QVariant::Int)
+    << QSqlField(CONFERENCEID, QVariant::Int)
     << QSqlField(NAME, QVariant::String));
 
 class TrackInsertException : OrmSqlException
@@ -36,7 +38,7 @@ public:
 int Track::insert()
 {
     QSqlQuery query;
-    query.prepare("INSERT INTO " + sTableName + " (" + NAME + ")" + " VALUES " + "(\"" + name() + "\")");
+    query.prepare("INSERT INTO " + sTableName + " (" + CONFERENCEID + "," + NAME + ")" + " VALUES " + "(\"" + QString::number(conferenceid()) + "\",\"" + name() + "\")");
     if (!query.exec())
     {
         throw TrackInsertException("Exec Error");
index 39960d1..3173b87 100644 (file)
@@ -28,10 +28,13 @@ public:
     static const QSqlRecord sColumns;
     static QString const sTableName;
     static const int sTableColCount;
+    static const QString CONFERENCEID;
     static const QString NAME;
 public:
     int id() const { return value("id").toInt(); }
     void setId(int id) { setValue("id", id); }
+    int conferenceid() const { return value("xid_conference").toInt(); }
+    void setConference(int conferenceid) { setValue("xid_conference", conferenceid); }
     QString name() const { return value("name").toString(); }
     void setName(const QString & type) { setValue("name", type); }
     int insert();
index c87ce2b..71a1c90 100644 (file)
@@ -131,6 +131,7 @@ void SqlEngine::addEventToDB(QHash<QString,QString> &aEvent)
     if (db.isValid() && db.isOpen())
     {
         //insert event track to table and get track id
+        int conference = aEvent["conference_id"].toInt();
         QString name = aEvent["track"];
         Track track;
         int trackId;
@@ -141,6 +142,7 @@ void SqlEngine::addEventToDB(QHash<QString,QString> &aEvent)
             /*qDebug() << QString("DEBUG: Track %1 in DB").arg(name);*/
         }
         catch (OrmNoObjectException &e) {
+            track.setConference(conference);
             track.setName(name);
             trackId = track.insert();
             /*qDebug() << QString("DEBUG: Track %1 added to DB").arg(name);*/
@@ -211,8 +213,8 @@ void SqlEngine::addPersonToDB(QHash<QString,QString> &aPerson)
     //TODO: check if the person doesn't exist before inserting
     if (db.isValid() && db.isOpen())
     {
-        QString values = QString("'%1', '%2'").arg(aPerson["id"],aPerson["name"]);
-        QString query = QString("INSERT INTO PERSON (id,name) VALUES (%1)").arg(values);
+        QString values = QString("'%1', '%2', '%3'").arg(aPerson["conference_id"],aPerson["id"],aPerson["name"]);
+        QString query = QString("INSERT INTO PERSON (xid_conference,id,name) VALUES (%1)").arg(values);
         QSqlQuery result (query, db);
         //LOG_AUTOTEST(query);
 
@@ -242,8 +244,8 @@ void SqlEngine::addRoomToDB(QHash<QString,QString> &aRoom)
         }
         else // ROOM record doesn't exist yet, need to create it
         {
-            QString values = QString("'%1', '%2'").arg(aRoom["name"],aRoom["picture"]);
-            QString query = QString("INSERT INTO ROOM (name,picture) VALUES (%1)").arg(values);
+            QString values = QString("'%1', '%2', '%3'").arg(aRoom["conference_id"],aRoom["name"],aRoom["picture"]);
+            QString query = QString("INSERT INTO ROOM (xid_conference,name,picture) VALUES (%1)").arg(values);
             QSqlQuery result (query, db);
             roomId = result.lastInsertId().toInt(); // 'id' is assigned automatically
             //LOG_AUTOTEST(query);