vector<Scientist> ScientistRepository::queryScientists(QString sqlQuery) { vector<Scientist> scientists; db.open(); if (!db.isOpen()) { return scientists; } QSqlQuery query(db); if (!query.exec(sqlQuery)) { return scientists; } while (query.next()) { int id = query.value("id").toUInt(); string name = query.value("name").toString().toStdString(); int gender = query.value("Gender").toInt(); enum sexType sex; if (gender == 1) sex = sexType::male; else sex = sexType::female; int yearBorn = query.value("BirthYear").toInt(); int yearDied = query.value("DeathYear").toInt(); scientists.push_back(Scientist(id, name, sex, yearBorn, yearDied)); } db.close(); for (unsigned int i = 0; i < scientists.size(); i++) { Scientist currentScientist = scientists.at(i); currentScientist.setComputers(queryComputersByScientist(currentScientist)); } return scientists; }
vector<Scientist> ScientistRepository::queryScientists(QString sqlQuery) { vector<Scientist> scientists; db.open(); if (!db.isOpen()) { return scientists; } QSqlQuery query(db); if (!query.exec(sqlQuery)) { return scientists; } while (query.next()) { int id = query.value("id").toUInt(); string name = query.value("name").toString().toStdString(); enum sexType sex = utils::intToSex(query.value("sex").toInt()); int yearBorn = query.value("yearBorn").toInt(); int yearDied = query.value("yearDied").toInt(); string info = query.value("info").toString().toStdString(); Scientist sci(id, name, sex, yearBorn, yearDied); sci.setInfo(info); scientists.push_back(sci); } db.close(); for (unsigned int i = 0; i < scientists.size(); i++) { Scientist currentScientist = scientists.at(i); currentScientist.setComputers(queryComputersByScientist(currentScientist)); } return scientists; }