return query.record().value("xid_room").toInt();
}
-QStringList Event::persons() const
+QStringList Event::persons()
{
- QSqlQuery query;
- // TODO: conference ID isn't used here
- query.prepare("SELECT person.name FROM person INNER JOIN event_person ON person.id = event_person.xid_person AND event_person.xid_event = :id");
- query.bindValue(":id", id());
- query.exec();
- // TODO: handle qeury error
- //qDebug() << query.lastError();
-
- QStringList persons;
- while(query.next())
- persons.append(query.record().value("name").toString());
+ if( personsList.isEmpty() )
+ {
+ QSqlQuery query;
+ // TODO: conference ID isn't used here
+ query.prepare("SELECT person.name FROM person INNER JOIN event_person ON person.id = event_person.xid_person AND event_person.xid_event = :id");
+ query.bindValue(":id", id());
+ query.exec();
+ // TODO: handle qeury error
+ //qDebug() << query.lastError();
+
+ while(query.next())
+ personsList.append(query.record().value("name").toString());
+ }
- return persons;
+ return personsList;
}
QMap<QString,QString> Event::links() const
// records from other tables associated with 'id'
QString room() const;
int roomId() const;
- QStringList persons() const;
+ QStringList persons();
QMap<QString,QString> links() const;
void setId(int id) { setValue("id", id); }
void setLinks(const QMap<QString,QString> &aLinks);
friend class EventTest;
+
+private:
+ QStringList personsList;
};
#endif // EVENT_H