1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| void calendrier::valide_reporte_tache(const int &id){
//Stockage de la date
QDate nouvelle_echeance;
//Récupération de l'ancienne date
//Connexion à la BDD
QSqlDatabase base = QSqlDatabase::addDatabase("QSQLITE");
base.setDatabaseName("base.db");
//Erreur d'ouverture de la base -> exit();
if(!base.open()){
QMessageBox::critical(this, QString::fromUtf8("Erreur critque"), QString::fromUtf8("Une erreur critique est survenue lors de l'ouverture de la base de données.\nLe programme va maintenant s'arrêter.\nVeuillez nous excuser pour ce problème."));
exit(EXIT_FAILURE);
}
//Récupération de la date (c'est la seule chose qui nous intéresse)
QSqlQuery recupere_date = base.exec("SELECT echeance FROM taches WHERE id = "+QString::number(id));
//Si erreur de requête, on quitte.
if(recupere_date.isValid()){
QString message_erreur = QString::fromUtf8("Une erreur est survenue lors de la lecture des tâches dans la base de données.\nVoici l'erreur qui s'est produite:\n")+recupere_date.lastError().text();
//Fermeture de la BDD
base.commit();
base.close();
QMessageBox::critical(this, QString::fromUtf8("Erreur lors de la lecture"), message_erreur);
return;
}
//Lecture du premier enregistrement
recupere_date.next();
QDate date_temp = QDate::fromString(recupere_date.value(0).toString(), "yyyy-MM-dd");
//calendrier_report est un QCalendarWidget précédemment déclaré. On récupère juste la date sélectionnée
QDate date_calendrier = calendrier_report->selectedDate();
//Simple vérification pour voir s'il y a eu changement de date
if(date_calendrier == date_temp){
QMessageBox::warning(this, QString::fromUtf8("Dates identiques"), QString::fromUtf8("La date de report que vous avez choisie est identique à celle actuelle. Veuillez choisir une autre date. Merci."));
return;
}
else{
nouvelle_echeance = date_calendrier;
}
//Si on est ici, c'est que tout c'est bien passé.
//Donc, on met à jour la BDD.
//---------------------------------------------------
//BUG DANS LE QSqlQuery!!!!!
//---------------------------------------------------
QSqlQuery update_base = base.exec("UPDATE taches SET echeance = '"+nouvelle_echeance.toString("yyyy-MM-dd")+"' WHERE id = "+QString::number(id));
if(recupere_date.isValid()){
QString message_erreur = QString::fromUtf8("Une erreur est survenue lors de la lecture des tâches dans la base de données.\nVoici l'erreur qui s'est produite:\n")+update_base.lastError().text();
//Fermeture de la BDD
base.commit();
base.close();
QMessageBox::critical(this, QString::fromUtf8("Erreur lors de la lecture"), message_erreur);
return;
}
//---------------------------------------
//Une erreur s'est produite. La fonction passe dans "if(recupere_date.isValid())"
//---------------------------------------
//Fermeture de la BDD
base.commit();
base.close();
return;
} |
Partager