Announcement

Collapse
No announcement yet.

Progressbar o.ä. mit einer Select Anweisung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Progressbar o.ä. mit einer Select Anweisung

    Hallo Leute,

    bin absoluter Delphi Neuling, habe folgende Frage.

    Ist es möglich den Fortschritt einer reinen Select Anweisung mit einer Progressbar oder ähnlichen anzuzeigen. Mein Probelm ist das die Abfrage ca. 5 min braucht bis sie ein Ergebnis zurück liefert, jetzt möchte ich da gerne eine Fortschrittsanzeige rein setzen so das der Anwender merkt das dieses Programm noch arbeitet und nicht abgestürzt ist.

    Ich vermute fast das sowas nicht geht, oder doch ?

    schon mal vielen Dank für eure Hife.

    Gruß
    Markus

  • #2
    Hallo, such einmal im Forum nach:
    <br>Progressbar in DB-Schleife nachführen
    <br>Vielleicht hilft Dir das weiter. Gruss ph

    Comment


    • #3
      hilft mir leider nicht weiter da die Werte für die Progressbar erst nach der Ausführeung des Querys vorhanden sind.... suche mehr in der Richtung einer Visualisierung während das Query ausgeführt wird

      Comment


      • #4
        Hallo,

        &gt;Ist es möglich den Fortschritt einer reinen Select Anweisung <br>
        &gt;mit einer Progressbar oder ähnlichen anzuzeigen.

        eine Progressbar ist nur dann sinnvoll, wenn der Endwert bekannt ist. Da eine laufende Query keine Statusinformationen vorsieht, kann das Programm nur den Weg gehen, den Microsoft zum Beispiel beim Internet Explorer verwendet (denn auch beim Abfordern einer Webseite ist die Wartezeit völlig unvorhersehbar). Beim Internet Explorer wird eine Animation verwendet, daher würde ich das auch für die Query so machen (siehe <b>TAnimate</b>).

        Die einzige Ausnahme von dieser Regel gilt für TQuery-Abfragen, die über LOCAL SQL der BDE auf die Daten zugreifen. Hier steht ein <b>BDE Callback</b> zur Verfügung, der über den Fortschritt informiert (die BDE muss SQL simulieren, daher liegen die Basisdaten vor)

        Comment


        • #5
          Hallo Markus,

          wenn die Abfrage immer ungefähr gleichlange braucht, kannst Du die den letzten Wert, oder einen Mittelwert merken und damit via Timer eine Progressbar simulieren. Aber die irrt dann halt auch mal

          Comment


          • #6
            Hi Markus,
            <br>
            <br>kann man die maximale Anzahl Zeilen der Abfrage auch schneller heraus bekommen (<< 5 min), indem man einpaar Zeitaufwendige Felder wegläßt, jedoch die Where Bedinung unverändert läßt?
            <br>Wenn man die maximale Anzahl hat könnte man sich so etwas noch zusammen frickeln.
            <br>
            <br>Bsp.:
            <br>Select ID, (x * subselect etc. ....) as ExtremeBerechnung from tbl where id > 100 and id < 200
            <br>Vereinfacht um erst mal schnell ungefähr das Maximum zu erhalten:
            <br>Select Count(*) as Maximum from tbl where id > 100 and id < 200
            <br>
            <br>
            <br>mfg
            <br>p

            Comment

            Working...
            X