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 Track Track::retrieve(int id)
62 query.prepare(selectQuery()
63 + QString("WHERE %1.id = :id").arg(sTableName));
64 query.bindValue(":id", id);
65 return loadOne(query);
68 QString Track::retrieveTrackName(int id)
70 Track track = retrieve(id);