/*
- * track.cpp
+ * activity.cpp
*
* Created on: Dec 27, 2009
* Author: Pavol Korinek
*/
#include "track.h"
+#include <QSqlTableModel>
QString const Track::sTableName = QString("track");
int const Track::sTableColCount = 2;
+const QString Track::NAME = "name";
QSqlRecord const Track::sColumns = Track::toRecord(QList<QSqlField>()
<< QSqlField("id", QVariant::Int)
- << QSqlField("name", QVariant::String));
+ << QSqlField(NAME, QVariant::String));
QMap<int, Track> 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> Track::getAll()
{
QSqlQuery query;
{
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;
}
* Author: Pavol Korinek
*/
-#ifndef TRACK_H
-#define TRACK_H
+#ifndef TRACK_H_
+#define TRACK_H_
#include <ormrecord.h>
{
public:
static const QSqlRecord sColumns;
+ static const QSqlRecord sInsertColumns;
static QString const sTableName;
static const int sTableColCount;
+ static const QString NAME;
public:
static QMap<int, Track> mIdToTrack;
public:
- static QList<Track> 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<Track> getAll();
+ static Track retrieveByName(QString name);
static void updateTrackMap();
static QString getTrackName(int id);
};
-#endif /* TRACK_H */
-
+#endif /* TRACK_H_ */