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 Delphi Discussion :

affichage d'une progressbar lors de l'execution d'une requete


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut affichage d'une progressbar lors de l'execution d'une requete
    Salut à tous, j'aimerai savoir comment afficher une progress bar durant l'execution d'une requete de type Select *

    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
              ProgressBar1.Min:=0;
              ProgressBar1.Max:=limite //c'est une variable que j'ai défini
     
              MaRequete.open;
              While not (MaRequete.Eof) do 
                   Begin
                      ProgressBar1.Position;=ProgressBar1.Position+1;
                      MaRequete.next;
                   end;
    Ce code marche très bien seulement il execute d'abord la requête avant d'afficher la progressbar, comment faire en sorte ke la progressbar progresse en même temps ke l'execution de la requête (c-a-d en même temps que le parcours de ma table puisque tel est le but de ma requête)

    Si quelqu'un peut me répondre, merci bcp

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    il faut que tu rajoutes un application.processmessages pour que tu vois ta barre défiler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     ProgressBar1.Min:=0;
              ProgressBar1.Max:=limite //c'est une variable que j'ai défini
              
              MaRequete.open;
              While not (MaRequete.Eof) do 
                   Begin
                      ProgressBar1.Position:=ProgressBar1.Position+1;
                      MaRequete.next;
                      Application.ProcessMessages;
                   end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Merci malatar, j'ai testé mais ma requête est toujours effectuée une première fois avant à cause du MaRequete.open

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Citation Envoyé par Malatar
    il faut que tu rajoutes un application.processmessages pour que tu vois ta barre défiler.
    Ma barre défilait bien avec ma méthode. Le problème est que lorsque j'ouvre MaRequete par le MaRequete.open celle ci s'execute avant d'effectuer le défilement de la ProgressBar. Visiblement application.processmessages ne change rien à cela

    J'aimerai savoir comment faire pour que la ProgressBar défile en même temps que l'execution de la requête.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    Citation Envoyé par RodEpsi
    Ma barre défilait bien avec ma méthode. Le problème est que lorsque j'ouvre MaRequete par le MaRequete.open celle ci s'execute avant d'effectuer le défilement de la ProgressBar. Visiblement application.processmessages ne change rien à cela

    J'aimerai savoir comment faire pour que la ProgressBar défile en même temps que l'execution de la requête genre comme un threat séparé pour d'un côté executer la requête et d'un autre côté effectuer le défilement de la ProgressBar

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    A ma connaissance, il n'y a qu'avec les composants Ado qu'il est possible d'utiliser une progressbar lors de l'exécution de la requete.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 131
    Par défaut
    J'utilise déjà ADO

    En fait ma requête récupère des photo au format bmp stockées directement dans une bdd acess, évidemment cette requête prend du temps la base de données faisant environ 150Mo à cause des images... :s Je voulais donc un progressBar le temps que la requête s'execute pour faire patienter l'utilisateur mais le mieux serait évidemment que ça ne rame pas Or j'ai stocké des bmp dans la bdd car je n'arrivais pas à insérer du jpeg... Ne saurais-tu pas sinon à tout hasard comment insérer une image jpeg dans une bdd access ???

  8. #8
    Invité de passage
    Inscrit en
    Avril 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 1
    Par défaut
    il faut ajouter un Repaint à la barre de progression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
              ProgressBar1.Min:=0;
              ProgressBar1.Max:=limite //c'est une variable que j'ai défini
              ProgressBar1.Step := 1;
              ProgressBar1.Repaint;
              MaRequete.open;
              While not (MaRequete.Eof) do 
                   Begin
                      MaRequete.next;
                      ProgressBar1.StepIt;  
                      Application.ProcessMessage; 
                   end;

Discussions similaires

  1. Délai expiré lors de l'execution d'une requete sqlserver
    Par lc.soft dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/09/2015, 11h41
  2. Réponses: 8
    Dernier message: 17/03/2009, 17h49
  3. Erreur PLSQL lors de l'execution d'une fonction
    Par chicken92000 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 17/03/2006, 17h12
  4. [ADO] Probleme lors de l'execution d'une requete...
    Par NoisetteProd dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 12h43
  5. Execution d'une fonction lors de l'appui sur CTRL+ALT+I
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 17/03/2004, 01h35

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