コード例 #1
0
QVector<Computer> DbManager::findComputers(QString conditions)
{
    db.open();
    Computer temp;
    QVector<Computer> results;
    QSqlQuery qry;
    qry.exec("PRAGMA foreign_keys=ON");

    qry.exec("SELECT cID, name, year, type, built "
             "FROM Computers "
             + conditions);

    int i_id = qry.record().indexOf("cID");
    int i_name = qry.record().indexOf("name");
    int i_year = qry.record().indexOf("year");
    int i_type = qry.record().indexOf("type");
    int i_built = qry.record().indexOf("built");

    while(qry.next())
    {
        temp.setId(qry.value(i_id).toString().toStdString());
        temp.setName(qry.value(i_name).toString().toStdString());
        temp.setYear(qry.value(i_year).toString().toStdString());
        temp.setType(qry.value(i_type).toString().toStdString());
        temp.setBuilt(stoi(qry.value(i_built).toString().toStdString())); //stoi to change to bool
        results.push_back(temp);
    }
    db.close();

    return results;
}
コード例 #2
0
Computer DbManager::getComputer(QString cid)
{
    db.open();
    Computer temp;
    QSqlQuery qry;
    qry.exec("PRAGMA foreign_keys=ON");

    qry.exec("SELECT cID, name, year, type, built "
             "FROM Computers "
             "WHERE cID = " + cid);

    int i_id = qry.record().indexOf("cID");
    int i_name = qry.record().indexOf("name");
    int i_year = qry.record().indexOf("year");
    int i_type = qry.record().indexOf("type");
    int i_built = qry.record().indexOf("built");

    while(qry.next())
    {
        temp.setId(qry.value(i_id).toString().toStdString());
        temp.setName(qry.value(i_name).toString().toStdString());
        temp.setYear(qry.value(i_year).toString().toStdString());
        temp.setType(qry.value(i_type).toString().toStdString());
        temp.setBuilt(stoi(qry.value(i_built).toString().toStdString())); //stoi to change to bool
    }
    db.close();

    return temp;
}
コード例 #3
0
ファイル: computerrepository.cpp プロジェクト: VLN-H7/Skil2
Computer ComputerRepository::getComputer(const unique_ptr<QSqlQuery> &query) {
    Computer comp;
    comp.setID(query->value("id").toInt());
    comp.setName(query->value("name").toString().toStdString());
    comp.setType(query->value("type").toString().toStdString());
    comp.setBuildYear(query->value("build_year").toInt());
    comp.setBuilt(query->value("built").toBool());
    return comp;
}
コード例 #4
0
vector<Computer> ComputerRepository::search(string input, string word) {
    db.open();
    vector<Computer> temp;

    QString qinput = QString::fromStdString(input);

    QString likeInput = "%" + qinput + "%";


    QSqlQuery query;

    if(word == "Name") {
        query.prepare("SELECT * FROM Computers c WHERE c.Name LIKE :contains ORDER BY Name;");

    } else if(word == "Build Year") {
        query.prepare("SELECT * FROM Computers c WHERE c.BuildYear LIKE :contains ORDER BY Name");

    } else if(word == "Type") {
        query.prepare("SELECT * FROM Computers c WHERE c.Type LIKE :contains ORDER BY Name");

    } else {
        query.prepare("SELECT * FROM Computers c WHERE c.Built LIKE :contains ORDER BY Name");

    }

    query.bindValue(":contains",likeInput);
    query.exec();

    while(query.next()) {
        Computer c;

        c.setName(query.value("Name").toString().toStdString());
        c.setBuildYear(query.value("BuildYear").toString().toStdString());
        c.setType(query.value("Type").toString().toStdString());
        c.setBuilt(query.value("Built").toInt());
        c.setID(query.value("ID").toInt());

        temp.push_back(c);
    }
    db.close();
    return temp;

}
コード例 #5
0
vector<Computer> ComputerRepository::getComputersFromScientist(Person scientist) {
    db.open();
    vector<Computer> temp;
    QSqlQuery query;
    query.prepare("SELECT * FROM Computers c JOIN Linker l ON l.c_ID = c.ID AND l.p_ID = ?");
    query.addBindValue(scientist.getID());
    query.exec();
    while(query.next()) {
        Computer c;

        c.setName(query.value("Name").toString().toStdString());
        c.setBuildYear(query.value("BuildYear").toString().toStdString());
        c.setType(query.value("Type").toString().toStdString());
        c.setBuilt(query.value("Built").toInt());
        c.setID(query.value("ID").toInt());

        temp.push_back(c);
    }

    db.close();
    return temp;
}
コード例 #6
0
vector<Computer> ComputerRepository::getSortedComputers(string sortOrder) {
    db.open();
    QSqlQuery query;

    if(sortOrder == "Name") {
        query.prepare("SELECT * FROM Computers ORDER BY Name");

    } else if(sortOrder == "Build Year") {
        query.prepare("SELECT * FROM Computers ORDER BY BuildYear");

    } else if(sortOrder == "Type") {
        query.prepare("SELECT * FROM Computers ORDER BY Type");

    } else if(sortOrder == "Built") {
        query.prepare("SELECT * FROM Computers ORDER BY Built");
    } else {
        query.prepare("SELECT * FROM Computers");
    }

    query.exec();

    vector<Computer> temp;

    while(query.next()) {
        Computer c;

        c.setName(query.value("Name").toString().toStdString());
        c.setBuildYear(query.value("BuildYear").toString().toStdString());
        c.setType(query.value("Type").toString().toStdString());
        c.setBuilt(query.value("Built").toInt());
        c.setID(query.value("ID").toInt());

        temp.push_back(c);
    }
    db.close();
    return temp;
}