+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);
+}
+