From f657e9c7de107454db654af8cb44a5461870ddaf Mon Sep 17 00:00:00 2001 From: Philipp Spitzer Date: Wed, 22 Jun 2011 19:12:32 +0000 Subject: [PATCH] Changed UNIQUE statements in the database table definition so that they make sense for multiple conferences and do no not prevent successful imports. --- src/create_tables.sql | 13 ++++++++----- src/sql/sqlengine.cpp | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/create_tables.sql b/src/create_tables.sql index 52f7828..2f9a90a 100644 --- a/src/create_tables.sql +++ b/src/create_tables.sql @@ -10,21 +10,24 @@ CREATE TABLE CONFERENCE ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 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 - , 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 - , 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 - , 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 diff --git a/src/sql/sqlengine.cpp b/src/sql/sqlengine.cpp index 71a1c90..db36355 100644 --- a/src/sql/sqlengine.cpp +++ b/src/sql/sqlengine.cpp @@ -116,7 +116,7 @@ void SqlEngine::addConferenceToDB(QHash &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.exec(); + if (!query.exec()) qDebug() << "Could not execute query to insert a conference:" << query.lastError(); aConference["id"] = query.lastInsertId().toString(); // 'id' is assigned automatically } } -- 2.39.5