boost::optional<ClauseRecord> ClauseRecord::getClauseRecord(int id, ProjectDatabase& database) { boost::optional<ClauseRecord> result; QSqlQuery query(*(database.qSqlDatabase())); query.prepare(toQString("SELECT * FROM " + ClauseRecord::databaseTableName() + " WHERE id=:id")); query.bindValue(":id", id); assertExec(query); if (query.first()) { result = factoryFromQuery(query, database); } return result; }
std::vector<RulesetRecord> RulesetRecord::getRulesetRecords(ProjectDatabase& database) { std::vector<RulesetRecord> result; QSqlQuery query(*(database.qSqlDatabase())); query.prepare(toQString("SELECT * FROM " + RulesetRecord::databaseTableName())); assertExec(query); while (query.next()) { boost::optional<RulesetRecord> rulesetRecord = factoryFromQuery(query, database); BOOST_ASSERT(rulesetRecord); result.push_back(*rulesetRecord); } return result; }
std::vector<VariableRecord> VariableRecord::getVariableRecords(ProjectDatabase& database) { std::vector<VariableRecord> result; QSqlQuery query(*(database.qSqlDatabase())); query.prepare(toQString("SELECT * FROM " + VariableRecord::databaseTableName())); assertExec(query); while (query.next()) { boost::optional<VariableRecord> variable = factoryFromQuery(query, database); OS_ASSERT(variable); result.push_back(*variable); } return result; }
std::vector<ActionClauseRecord> ActionClauseRecord::getActionClauseRecords(ProjectDatabase& database) { std::vector<ActionClauseRecord> result; QSqlQuery query(*(database.qSqlDatabase())); query.prepare(toQString("SELECT * FROM " + ClauseRecord::databaseTableName() + " WHERE clauseRecordType=:clauseRecordType")); query.bindValue(":clauseRecordType", ClauseRecordType::ActionClauseRecord); assertExec(query); while (query.next()) { boost::optional<ActionClauseRecord> actionClauseRecord = factoryFromQuery(query, database); BOOST_ASSERT(actionClauseRecord); result.push_back(*actionClauseRecord); } return result; }