4 * Created on: Dec 27, 2009
5 * Author: Pavol Korinek
9 #include <QSqlTableModel>
11 QString const Track::sTableName = QString("track");
12 int const Track::sTableColCount = 2;
13 const QString Track::NAME = "name";
15 QSqlRecord const Track::sColumns = Track::toRecord(QList<QSqlField>()
16 << QSqlField("id", QVariant::Int)
17 << QSqlField(NAME, QVariant::String));
19 QMap<int, Track> Track::mIdToTrack;
21 class TrackInsertException : OrmSqlException
24 TrackInsertException(const QString& text) : OrmSqlException(text) {}
30 query.prepare("INSERT INTO " + sTableName + " (" + NAME + ")" + " VALUES " + "(\"" + name() + "\")");
33 throw TrackInsertException("Exec Error");
35 QVariant variant = query.lastInsertId();
36 if (variant.isValid())
37 return variant.toInt();
39 throw TrackInsertException("Last Insert Id Error");
42 Track Track::retrieveByName(QString name)
47 + QString("WHERE %1.name = :name").arg(sTableName));
48 query.bindValue(":name", name);
49 return loadOne(query);
52 QList<Track> Track::getAll()
55 query.prepare(selectQuery());
59 void Track::updateTrackMap()
62 QList<Track> trackList = Track::getAll();
64 for (int id = 0; id < trackList.count(); ++id) {
65 track = trackList.at(id);
66 mIdToTrack.insert(track.id(), track);
70 QString Track::getTrackName(int id)
72 QString name = mIdToTrack.value(id).name();
74 qDebug() << QString("Error: undefined activity name for id %1").arg(id);