From: korrco Date: Thu, 21 Jan 2010 12:59:22 +0000 (+0000) Subject: activities tab implemented X-Git-Tag: 0.5.0~235 X-Git-Url: https://git.toastfreeware.priv.at/toast/confclerk.git/commitdiff_plain/606c155796d1125159e4ecc9a8dfe6b3f5040ded activities tab implemented --- diff --git a/src/mvc/track.cpp b/src/mvc/track.cpp index 4ac3e4b..3ba78e5 100644 --- a/src/mvc/track.cpp +++ b/src/mvc/track.cpp @@ -1,21 +1,54 @@ /* - * track.cpp + * activity.cpp * * Created on: Dec 27, 2009 * Author: Pavol Korinek */ #include "track.h" +#include QString const Track::sTableName = QString("track"); int const Track::sTableColCount = 2; +const QString Track::NAME = "name"; QSqlRecord const Track::sColumns = Track::toRecord(QList() << QSqlField("id", QVariant::Int) - << QSqlField("name", QVariant::String)); + << QSqlField(NAME, QVariant::String)); QMap Track::mIdToTrack; +class TrackInsertException : OrmSqlException +{ +public: + TrackInsertException(const QString& text) : OrmSqlException(text) {} +}; + +int Track::insert() +{ + QSqlQuery query; + query.prepare("INSERT INTO " + sTableName + " (" + NAME + ")" + " VALUES " + "(\"" + name() + "\")"); + if (!query.exec()) + { + throw TrackInsertException("Exec Error"); + } + QVariant variant = query.lastInsertId(); + if (variant.isValid()) + return variant.toInt(); + else + throw TrackInsertException("Last Insert Id Error"); +} + +Track Track::retrieveByName(QString name) +{ + QSqlQuery query; + query.prepare( + selectQuery() + + QString("WHERE %1.name = :name").arg(sTableName)); + query.bindValue(":name", name); + return loadOne(query); +} + QList Track::getAll() { QSqlQuery query; @@ -38,7 +71,7 @@ QString Track::getTrackName(int id) { QString name = mIdToTrack.value(id).name(); if (name == "") { - qDebug() << QString("Error: undefined track name for id %1").arg(id); + qDebug() << QString("Error: undefined activity name for id %1").arg(id); } return name; } diff --git a/src/mvc/track.h b/src/mvc/track.h index 194fe9c..b8a3243 100644 --- a/src/mvc/track.h +++ b/src/mvc/track.h @@ -5,8 +5,8 @@ * Author: Pavol Korinek */ -#ifndef TRACK_H -#define TRACK_H +#ifndef TRACK_H_ +#define TRACK_H_ #include @@ -14,20 +14,24 @@ class Track : public OrmRecord { public: static const QSqlRecord sColumns; + static const QSqlRecord sInsertColumns; static QString const sTableName; static const int sTableColCount; + static const QString NAME; public: static QMap mIdToTrack; public: - static QList getAll(); + int insert(); int id() const { return value("id").toInt(); } void setId(int id) { setValue("id", id); } QString name() const { return value("name").toString(); } void setName(const QString & type) { setValue("name", type); } public: + //static void + static QList getAll(); + static Track retrieveByName(QString name); static void updateTrackMap(); static QString getTrackName(int id); }; -#endif /* TRACK_H */ - +#endif /* TRACK_H_ */