IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Discussion :

Utilisation d'un Qt::WaitCursor durant une requête SQL


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 252
    Par défaut Utilisation d'un Qt::WaitCursor durant une requête SQL
    Bonjour,

    Tout est dans le titre. Je voudrais encadrer un query.exec() (un UPDATE d'une table assez long), par un changement de curseur : QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)) - query.exec() - QApplication::restoreOverrideCursor().

    J'ai utilisé les signaux, joué avec les QApplication::processEvents() sans aucun résultat. Une séquence avec 3 qDebug() me donne bien
    "WaitCursor" - " UPDATE Terminé avec succès" - "DefCursor" mais les 3 évènements sont affichés à la fin de l'enregistrement (après le db.commit).

    Quelle est la bonne approche ?

    Merci. AD

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 252
    Par défaut
    Bonjour,

    je me réponds :
    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
    db.transaction();
     
    setCursor(Qt::WaitCursor);
    qApp->processEvents();
     
    query.prepare("UPDATE pv SET pvFILES=:pvfiles WHERE pvID=3");
    query.bindValue(":pvfiles",byteArray);
    if (!query.exec()) {
    #ifdef QT_DEBUG
        sErr = query.lastError().databaseText();
    #else
        sErr = "Enregistrement impossible.";
    #endif
    }
     
    if (sErr.isEmpty())
        db.commit();
    else
        db.rollback();
     
    db.close();
    setCursor(Qt::ArrowCursor);
     
    if (!sErr.isEmpty()) {
        qDebug() << sErr; //Ici un QMessageBox
    }
    setOverrideCursor fonctionne pour une requête SELECT. Mais pour un UPDATE ou un INSERT, la solution ci-dessus est fonctionnelle.
    Cordialement.AD

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de SUBSTR avec WHERE dans une requête SQL
    Par thipyt dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/10/2016, 15h54
  2. [MySQL] Utiliser plusieurs fois le résultat d'une requête SQL
    Par liandar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/11/2015, 15h46
  3. Utilisation de MAX avec String dans une requête SQL
    Par Sun03 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/04/2010, 12h22
  4. Réponses: 3
    Dernier message: 12/12/2008, 08h05
  5. Utilisation du tablespace TEMP lors d'une requête SQL
    Par dyvim dans le forum Administration
    Réponses: 2
    Dernier message: 31/05/2007, 19h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo