]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/mvc/track.cpp
Bump copyright years.
[toast/confclerk.git] / src / mvc / track.cpp
index 769ec977b71272bcc122f7656d07bc217642e248..f7893e8ca98eb4bf328c3a416358f2fea573c94e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2010 Ixonos Plc.
- * Copyright (C) 2011-2014 Philipp Spitzer, gregor herrmann, Stefan Stahl
+ * Copyright (C) 2011-2024 Philipp Spitzer, gregor herrmann, Stefan Stahl
  *
  * This file is part of ConfClerk.
  *
@@ -30,7 +30,7 @@ QSqlRecord const Track::sColumns = Track::toRecord(QList<QSqlField>()
     << QSqlField(CONFERENCEID, QVariant::Int)
     << QSqlField(NAME, QVariant::String));
 
-class TrackInsertException : OrmSqlException
+class TrackInsertException : public OrmSqlException
 {
 public:
     TrackInsertException(const QString& text) : OrmSqlException(text) {}
@@ -39,10 +39,17 @@ public:
 int Track::insert()
 {
     QSqlQuery query;
-    query.prepare("INSERT INTO " + sTableName + " (" + CONFERENCEID + "," + NAME + ")" + " VALUES " + "(\"" + QString::number(conferenceid()) + "\",\"" + name() + "\")");
+    QString trackname = name();
+    query.prepare(
+            QString("INSERT INTO %1 (%2, %3) VALUES (:xid_conference, :name)")
+            .arg(sTableName, CONFERENCEID, NAME));
+    query.bindValue(":xid_conference", conferenceid());
+    query.bindValue(":name", trackname);
     if (!query.exec())
     {
-        throw TrackInsertException("Exec Error");
+        throw TrackInsertException(
+                "Inserting track '" + trackname + "' into database failed: " +
+                query.lastError().text());
     }
     QVariant variant = query.lastInsertId();
     if (variant.isValid())