2009-06-16 7 views
17

Si j'obtiens des données de la base de données de l'heure de début à la fin, pendant ce temps (de traitement/interrogation), je veux afficher une barre de progression (quelque chose comme: S'il vous plaît, attendez"). Comment puis-je faire ceci?Afficher la barre de progression au moment du traitement

+1

Je ne suis pas sûr que je comprends la question suivante: est-ce un scénario en temps réel dans lequel vous exécutez une série de requêtes sur la base de données qui arrêtera quand « fin date "est atteint? Ou s'agit-il d'une requête unique qui prend beaucoup de temps à s'exécuter, et vous voulez fournir une barre de progression pour la requête? Peut-être pourriez-vous également inclure les instructions d'accès aux données et les définitions de tables. – cheduardo

Répondre

2

Étapes de données geting de db:

  1. app envoyer requête db
  2. db analyses d'interrogation et prépare résultent
  3. envoyer db résultat à l'application

Dans la plupart des cas, vous ne peut pas dire combien de temps il faudra, donc au lieu de la barre de progression pensez à la combinaison de:

  • heures pointeur de la souris en verre
  • « s'il vous plaît attendre » dans la barre d'état
  • peu d'animation (moulin à vent, rotation des roues dentées, etc.)
+0

Je suis venu ici pour poster essentiellement la même chose. Si vous attendez la requête, vous ne pouvez pas dire combien de temps cela va prendre. La meilleure option est une petite barre d'animation sur un formulaire qui affiche l'excédent de votre affichage actuel. – Daemonic

0

Bien que son vrai que vous ne pouvez pas dire combien de temps la requête va prendre , il est possible de donner à votre utilisateur et l'idée du temps écoulé/restant. Vous utilisez le contrôle de barre de progression de votre IDE VB. Vous définissez ensuite sa propriété "max" sur votre enregistrement de requête. Au fur et à mesure que vous parcourez les enregistrements, vous augmentez la propriété 'value' des barres de progression. Voici un exemple. (« R » est un recordset ADODB)

 ProgressBar1.Max = Rs.RecordCount - 1 

     For P = 0 To .RecordCount - 1 
      ProgressBar1.Value = P 

      'some process here 
      Rs.MoveNext 

     Next P 
Questions connexes