2009-06-16 16 views
17

Se ricevo dati dal database dall'inizio alla fine, durante tale periodo (di elaborazione/interrogazione), voglio visualizzare una barra di avanzamento (qualcosa come "Elaborazione, attendere prego"). Come posso fare questo?Visualizza barra di avanzamento al momento dell'elaborazione

+1

Non sono sicuro di aver capito la domanda: è questo uno scenario in tempo reale in cui si sta eseguendo una serie di query sul database che smetterà quando "end data "è stata raggiunta? O è una singola query che richiede molto tempo per essere eseguita e si desidera fornire una barra di avanzamento per la query? Forse potresti includere anche le istruzioni di accesso ai dati e le definizioni delle tabelle. – cheduardo

risposta

2

Passi di geting dati da db:

  1. app Inviare richiesta al db
  2. db analisi query e prepara risultato
  3. inviare db risultato di nuovo al app

Nella maggior parte dei casi non posso dire quanto tempo ci vorrà, quindi al posto di barra di progresso pensate alla combinazione di:

  • ora puntatore del mouse in vetro
  • "attendere prego" nella barra di stato
  • po 'di animazione (mulino a vento, ruote dentate ecc rotante)
+0

Sono venuto qui per pubblicare essenzialmente la stessa cosa. Se stai aspettando la query, non puoi dire quanto tempo ci vorrà. L'opzione migliore è una piccola barra di animazione su un modulo che mostra la parte superiore del display corrente. – Daemonic

0

Mentre il suo vero che non puoi dire per quanto tempo la query sta andando a prendere , è possibile dare il tuo utente e idea del tempo trascorso/rimanente. Usa il controllo della barra di avanzamento dal tuo VB IDE. Quindi imposta la proprietà 'max' sul tuo recordcount di query. Durante l'iterazione dei record, aumenta la proprietà 'value' delle barre di avanzamento. Ecco un esempio; ('R' è un set di record ADODB)

 ProgressBar1.Max = Rs.RecordCount - 1 

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

      'some process here 
      Rs.MoveNext 

     Next P 
Problemi correlati