コード例 #1
0
ファイル: enrollmentdao.cpp プロジェクト: sagzy/lo21-project
void EnrollmentDao::update(Enrollment obj){
    Enrollment* enrollment;
    try{
        enrollment = find(obj);
    }
    catch(DaoException e){
        std::cout<<e.what()<<std::endl;
        return;
    }

    if(db.isValid() && db.isOpen()){
        QSqlQuery* q = new QSqlQuery();
        q->prepare("update enrollment set mark = :mark where rowid = :id");
        q->bindValue(":mark", QString(MarkNames[obj.getMark()]));
        q->bindValue(":id", obj.getId());
        if(!q->exec()){
            std::cout<<"Error while updating Enrollment in database : "<< q->lastError().text().toStdString() <<std::endl;
            delete q;
            return;
        }
        enrollment->setMark(obj.getMark());
        delete q;
    }
}
コード例 #2
0
ファイル: enrollmentdao.cpp プロジェクト: sagzy/lo21-project
/**
 * @brief EnrollmentDao::add Adds a new Enrollment to the SQLite database.
 * A new Enrollment object is inserted into enrollment_map. Enrollment_map is pushed back with the new cursus added. Then, three queries are necessary to add a cursus into the SQLite database.
 * @param obj Cursus obj.
 */
void EnrollmentDao::add(Enrollment obj){

    int id;

    if(db.isValid() && db.isOpen()){
        QSqlQuery* q = new QSqlQuery();
        q->prepare("insert into enrollment(uv_id, semester_id, mark) select U.rowid, S.rowid, :mark from UV U, STUDENT_RECORD S where U.pk_code = :uv_code and S.semester = :semester");
        q->bindValue(":mark", QString(MarkNames[obj.getMark()]));
        q->bindValue(":uv_code", QString(obj.getUV().getCode().c_str()));
        q->bindValue(":semester", QString(obj.getSemester()->toStdString().c_str()));

        if(!q->exec()){
            std::cout<< "Error while adding Enrollment to database : "<< q->lastError().text().toStdString()<<std::endl;
            delete q;
            return;
        }
        id = q->lastInsertId().toInt();

        delete q;

        QSqlQuery("select lastInsertedId(rowid) from enrollment");
    }
    enrollment_map.insert(std::pair<Semester*, Enrollment*>(obj.getSemester(), new Enrollment(obj.getUV(), obj.getSemester(), obj.getMark(), id)));
}