source: src/mvc/track.cpp @ ab6110b

qt5
Last change on this file since ab6110b was 606c155, checked in by korrco <korrco@…>, 12 years ago

activities tab implemented

  • Property mode set to 100644
File size: 1.8 KB
Line 
1/*
2 * activity.cpp
3 *
4 *  Created on: Dec 27, 2009
5 *      Author: Pavol Korinek
6 */
7
8#include "track.h"
9#include <QSqlTableModel>
10
11QString const Track::sTableName = QString("track");
12int const Track::sTableColCount = 2;
13const QString Track::NAME = "name";
14
15QSqlRecord const Track::sColumns = Track::toRecord(QList<QSqlField>()
16    << QSqlField("id", QVariant::Int)
17    << QSqlField(NAME, QVariant::String));
18
19QMap<int, Track> Track::mIdToTrack;
20
21class TrackInsertException : OrmSqlException
22{
23public:
24    TrackInsertException(const QString& text) : OrmSqlException(text) {}
25};
26
27int Track::insert()
28{
29    QSqlQuery query;
30    query.prepare("INSERT INTO " + sTableName + " (" + NAME + ")" + " VALUES " + "(\"" + name() + "\")");
31    if (!query.exec())
32    {
33        throw TrackInsertException("Exec Error");
34    }
35    QVariant variant = query.lastInsertId();
36    if (variant.isValid())
37        return variant.toInt();
38    else
39        throw TrackInsertException("Last Insert Id Error");
40}
41
42Track Track::retrieveByName(QString name)
43{
44    QSqlQuery query;
45    query.prepare(
46            selectQuery()
47            + QString("WHERE %1.name = :name").arg(sTableName));
48    query.bindValue(":name", name);
49    return loadOne(query);
50}
51
52QList<Track> Track::getAll()
53{
54    QSqlQuery query;
55    query.prepare(selectQuery());
56    return load(query);
57}
58
59void Track::updateTrackMap()
60{
61    mIdToTrack.clear();
62    QList<Track> trackList = Track::getAll();
63    Track track;
64    for (int id = 0; id < trackList.count(); ++id) {
65        track = trackList.at(id);
66        mIdToTrack.insert(track.id(), track);
67    }
68}
69
70QString Track::getTrackName(int id)
71{
72    QString name = mIdToTrack.value(id).name();
73    if (name == "") {
74        qDebug() << QString("Error: undefined activity name for id %1").arg(id);
75    }
76    return name;
77}
Note: See TracBrowser for help on using the repository browser.