Partage
  • Partager sur Facebook
  • Partager sur Twitter

QSqlQuery::value: not positioned on a valid record

Avertissement QSqlQuery en sortant d'une boucle for

    28 juillet 2020 à 21:17:28

    Bonjour,

    Je suis en train de coder une application pour accéder à une base de donnée SQLite.
    L'une de ses fonctionnalités est de pouvoir mettre à jour/supprimer une ligne et de pouvoir annuler l'opération.

    En exécutant une annulation, tout se passe bien jusqu'à ce que le code mette à jour la QComboBox me permettant de sélectionner la ligne.
    Voici le code en question:

    void MainWindow::startTransaction()
    {
        if(isInTransaction)
        {
            db.commit();
            isInTransaction=false;
        }
        isInTransaction=db.transaction();
    }
    void MainWindow::initializeMajComboBox(QComboBox &comboBox)
    {
            int max = comboBox.count();
            for(int i=0;i<max;i++)
            {
                comboBox.removeItem(0);
            }
            startTransaction();
            QString sql="SELECT Site,clé FROM Mots_de_Passe";
            QSqlQuery query;
            query.exec(sql);
            QString value;
            while(query.next())
            {
                value = query.value(0).toString();
                QVariant data(query.value(1));//On stocke la clé de l'entrée en data du QVariant
                comboBox.addItem(value,data);
            };
            query.finish();
    }
    

    La fonction MainWindow::initializeMajComboBox() est appelée lors de l'annulation, après que l'annulation dans la bdd soit effective.
    En sortant de la boucle for, s'affiche les avertissements suivants:

    QSqlQuery::value: not positioned on a valid record

    QSqlQuery::value: not positioned on a valid record

    QSqlQuery::value: not positioned on a valid record

    QSqlQuery::value: not positioned on a valid record

    QSqlQuery::value: not positioned on a valid record

    QSqlQuery::value: not positioned on a valid record

    QSqlQuery::value: not positioned on a valid record

    Je ne comprends pas pourquoi, à cet endroit je n'utilise pas de QSqlQuery.

    A l'aide>_<

    • Partager sur Facebook
    • Partager sur Twitter
      9 août 2020 à 21:53:10

      Salut,

      je ne pense pas que le gestionnaire SQLite prend en charge les accents, donc essaies de l'enlever

      • Partager sur Facebook
      • Partager sur Twitter

      Ton présent détermine ton futur et la connaissance te placera au dessus de ta génération .

        11 août 2020 à 16:57:18

        EL-jos a écrit:

        Salut,

        je ne pense pas que le gestionnaire SQLite prend en charge les accents, donc essaies de l'enlever

        J'ai fait la modification, l'avertissement continu d'apparaître. J'ai essayé de ne pas utiliser ma fonction MainWindow::initializeMajComboBox mais plutôt de retirer l'item de la QComboBox en faisant : ui->majComboBox->removeItem(ui->majComboBox->currentIndex()); mais cela ne change rien ( l'avertissement apparaît à l'execution de cette ligne en passant le programme en mode débug).

        -
        Edité par corentinAulagnet 11 août 2020 à 16:58:19

        • Partager sur Facebook
        • Partager sur Twitter

        QSqlQuery::value: not positioned on a valid record

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown