Changed UNIQUE statements in the database table definition so that they make sense...
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Wed, 22 Jun 2011 19:12:32 +0000 (19:12 +0000)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Wed, 22 Jun 2011 19:12:32 +0000 (19:12 +0000)
src/create_tables.sql
src/sql/sqlengine.cpp

index 52f7828..2f9a90a 100644 (file)
@@ -10,21 +10,24 @@ CREATE TABLE CONFERENCE ( id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL
     , day_change INTEGER
     , timeslot_duration INTEGER
     , active INTEGER DEFAULT 0
     , day_change INTEGER
     , timeslot_duration INTEGER
     , active INTEGER DEFAULT 0
-    , url VARCHAR UNIQUE
+    , url VARCHAR
     , map VARCHAR);
 
 CREATE TABLE TRACK ( id INTEGER  PRIMARY KEY AUTOINCREMENT  NOT NULL
     , xid_conference INTEGER -- NOT NULL
     , map VARCHAR);
 
 CREATE TABLE TRACK ( id INTEGER  PRIMARY KEY AUTOINCREMENT  NOT NULL
     , xid_conference INTEGER -- NOT NULL
-    , name VARCHAR UNIQUE NOT NULL );
+    , name VARCHAR NOT NULL
+    , UNIQUE (xid_conference, name));
 
 CREATE TABLE ROOM ( id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL
     , xid_conference INTEGER -- NOT NULL
 
 CREATE TABLE ROOM ( id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL
     , xid_conference INTEGER -- NOT NULL
-    , name VARCHAR UNIQUE NOT NULL
-    , picture VARCHAR NOT NULL);
+    , name VARCHAR NOT NULL
+    , picture VARCHAR NOT NULL
+    , UNIQUE (xid_conference, name));
 
 CREATE TABLE PERSON ( id INTEGER PRIMARY KEY  NOT NULL
     , xid_conference INTEGER -- NOT NULL
 
 CREATE TABLE PERSON ( id INTEGER PRIMARY KEY  NOT NULL
     , xid_conference INTEGER -- NOT NULL
-    , name VARCHAR UNIQUE NOT NULL);
+    , name VARCHAR NOT NULL
+    , UNIQUE (xid_conference, name)); 
 
 CREATE TABLE EVENT ( xid_conference INTEGER  NOT NULL
     , id INTEGER NOT NULL
 
 CREATE TABLE EVENT ( xid_conference INTEGER  NOT NULL
     , id INTEGER NOT NULL
index 71a1c90..db36355 100644 (file)
@@ -116,7 +116,7 @@ void SqlEngine::addConferenceToDB(QHash<QString,QString> &aConference)
             query.bindValue(":day_change", -QTime::fromString(aConference["day_change"],TIME_FORMAT).secsTo(QTime(0,0)));
             query.bindValue(":day_change", -QTime::fromString(aConference["timeslot_duration"],TIME_FORMAT).secsTo(QTime(0,0)));
             query.bindValue(":active", confsList.count() > 0 ? 0 : 1);
             query.bindValue(":day_change", -QTime::fromString(aConference["day_change"],TIME_FORMAT).secsTo(QTime(0,0)));
             query.bindValue(":day_change", -QTime::fromString(aConference["timeslot_duration"],TIME_FORMAT).secsTo(QTime(0,0)));
             query.bindValue(":active", confsList.count() > 0 ? 0 : 1);
-            query.exec();
+            if (!query.exec()) qDebug() << "Could not execute query to insert a conference:" << query.lastError();
             aConference["id"] = query.lastInsertId().toString(); // 'id' is assigned automatically
         }
     }
             aConference["id"] = query.lastInsertId().toString(); // 'id' is assigned automatically
         }
     }