Bonjour à tous !

J'utilise Qt/MySql. J'ai une table avec 7 champs. le 3ème champs est "code"(int), le 6ème champ est "date_entree"(QDateTime) et le 7ème champ est "number"(int). La colonne number est initialisé à 0.
Chaque utilisateur a un numéro de code.
Dans mon interface, j'ai un QlineEdit ou l'utilisateur doit saisir son code puis doit cliquer sur ok. Un compteur à côté se décrémente. et la date est enregistrée dans "date_entree". L'utilisateur n'a le droit de saisir son code que 1 fois par jour.
C'est pour cela, j'ai crée la 6ème colonne: number initialisée à 0.
Si number = 0 alors c'est la 1ère tentative, et l'utilisateur peut saisir son code sans problème. number prend la valeur 1. Le compteur se décrémente.
Si number = 1, je vérifie la date actuelle, si ça dépasse une journée --> boite de dialogue: Erreur. Sinon, l'utilisateur saisit son code.

Nom : 395633.png
Affichages : 58
Taille : 5,8 Ko

Quand je débogue mon programme, je vois que dateEntree et date_actuelle prennent les valeurs: <inaccessible> dans toutes les lignes, à partir de leurs déclarations.
La donnée de "number" ne se modifie pas dans la table.

Le code est ci-dessous, merci de m'aider à résoudre ces problèmes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
void personnel::groupe1()
{
    int i=0;
    QSqlQuery query("SELECT nom,prenom,code,statut,choix, date_entree, number FROM Personnel");
        QSqlRecord record = query.record();
        while (query.next()) {
            QString s =
            query.value(record.indexOf("code")).toString();
            QString ch =
            query.value(record.indexOf("choix")).toString();
           int myNumber = query.value(7).toInt(0);
            if(ui->t_line->text() == s )
            {
                int v = ui->C_compt->intValue();
                if(myNumber == 1)
                {
                    QDateTime dateEntree =
                                query.value(record.indexOf("date_entree")).toDateTime();
                    QDateTime date_actuelle = QDateTime::currentDateTime();
                    QDateTime ma_date = dateEntree;
                    ma_date.addSecs(72000);
                    if(date_actuelle < ma_date )
                    {
                        QMessageBox::information(this, "erreur", "impossible");
                    }
                    else
                    {
                        QMessageBox::information(this, "Choix", ch);
                        v--;
                        ui->C_compt->display(v);
                        QDateTime dateEntree =
                                    query.value(record.indexOf("date_entree")).toDateTime();
                        QSqlQuery query;
                          query.exec("UPDATE personnel SET number=1 WHERE code="+s+";");
                        QDateTime date_actuelle = QDateTime::currentDateTime();
                        QSqlQuery query1;
                          query1.exec("UPDATE personnel SET :value=:value1 WHERE code="+s+";");
                          query1.bindValue( ":value", "dateEntree" );
                          query1.bindValue( ":value1", "date_actuelle" );
                    }
                }
                else if(myNumber == 0)
                {
                    QMessageBox::information(this, "Choix", ch);
                    v--;
                    ui->C_compt->display(v);
                    QDateTime dateEntree =
                                query.value(record.indexOf("date_entree")).toDateTime();
                    QSqlQuery query;
                      query.exec("UPDATE personnel SET number=1 WHERE code="+s+";");
                    QDateTime date_actuelle = QDateTime::currentDateTime();
                    QSqlQuery query1;
                      query1.exec("UPDATE personnel SET :value=:value1 WHERE code='"+s+"';");
                      query1.bindValue( ":value", "dateEntree" );
                      query1.bindValue( ":value1", "date_actuelle" );
                }
            }
            i++;
        }
}