AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung IOS UniDac While Schleife mit Progressbar
Thema durchsuchen
Ansicht
Themen-Optionen

IOS UniDac While Schleife mit Progressbar

Ein Thema von oakley · begonnen am 17. Feb 2023 · letzter Beitrag vom 20. Feb 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#1

AW: IOS UniDac While Schleife mit Progressbar

  Alt 17. Feb 2023, 18:11
WAS dauert hier so lange?

Das Schreiben in die Stringlist kann doch nicht so lange dauern.
Ich würde den Fehler eher beim SYNCQUERY.Execute; suchen.



Gibt es vorher auch irgendwo Zeit, damit die Queue abgearbeitet wird?
Also nicht dass es wirklich erst ganz am Ende alles ausgeführt wird.
Was sagt der Debugger?

Refresh/Repaint auf die Komponente oder Form?
Oder z.B. Ausgabe in ein Label, ob es dort schneller reagiert.


hmmmmmmmmm
Zitat:
(Syncform.SB1.FindComponent('Progressbar1') as TProgressbar).value := (Syncform.SB1.FindComponent('Progressbar1') as TProgressbar).value + 1;
(Syncform.SB1.FindComponent('Progressbar1') as TProgressbar).StepIt;

[edit]
Ohhh, ist es nicht ein Bug, dass es im FMX sowas nicht gibt?
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Feb 2023 um 21:33 Uhr)
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#2

AW: IOS UniDac While Schleife mit Progressbar

  Alt 17. Feb 2023, 22:12
Also ich mache an anderer Stelle in der App einen Download mit Fortschrittsbalken via IndyFtp.
Funktioniert ohne Probleme und wird auch per Thread sauber Synchronisiert.
Ich habe eher das Unidac in Verdacht, denn es scheint Probleme mit der While Schleife zu geben.
Wenn ich eine einfache For Schleife nehme funcktioniert es einwandfrei.

LG

Mirko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: IOS UniDac While Schleife mit Progressbar

  Alt 18. Feb 2023, 00:02
Hallo,
müsste es nicht Query.Open sein?
Heiko
  Mit Zitat antworten Zitat
EmWieMichael

Registriert seit: 28. Mär 2012
103 Beiträge
 
#4

AW: IOS UniDac While Schleife mit Progressbar

  Alt 18. Feb 2023, 07:04
Hallo,
müsste es nicht Query.Open sein?
Execute ruft intern Open auf, wenn es sich um ein SELECT handelt.

Keine Ahnung ob´s hilft, aber ich würde vor einem .EoF stets ein .First setzen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.531 Beiträge
 
Delphi 12 Athens
 
#5

AW: IOS UniDac While Schleife mit Progressbar

  Alt 18. Feb 2023, 08:33
Nach dem Open ist es schon auf First.


"Normal" sollte Execute/Open ALLE Daten sofort laden und erst danach läuft die Schleife da drüber, was jetzt schön im RAM liegt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.587 Beiträge
 
Delphi 7 Professional
 
#6

AW: IOS UniDac While Schleife mit Progressbar

  Alt 19. Feb 2023, 11:55
Vor der While-Schleife würd' ich ja zuerst mal die Position der Progressbar auf 0 setzen und das Maximum auf die Anzahl der Datensätze.
Zitat:
Die Progressbar wird dynamisch erzeugt.
Wann denn? Wie sind denn die Standardwerte der entsprechenden Attribute der Progressbar?

Ist sie vielleicht deshalb so schnell auf 100, weil das Maximum weit unterhalb der Anzahl der Datensätze der Abfrage liegt?

Bei z. B. 'nem Maximum der Progressbar von 100 und 10.000 Datensätze, ist die Position des Maximums per Value + 1 halt bereits nach einem Prozent der zu verarbeitenden Datenmenge erreicht, siehe FMX.StdCtrls.TProgressBar.Value.

Standard für Min = 0, für Max = 100, Value gibt damit die Verarbeitungsposition in Prozent an. Bei Value + 1 wären dann nach 100 Schleifendurchläufen 100% erreicht.

Wenn's um Prozentangaben gehen soll, könnte (theoretisch) sowas funktionieren:

(Syncform.SB1.FindComponent('Progressbar1') as TProgressbar).value := SYNCQUERY.RecNo * 100 div SYNCQUERY.RecordCount;
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#7

AW: IOS UniDac While Schleife mit Progressbar

  Alt 20. Feb 2023, 08:39
Ja schön blöd ich habe vergessen das Max der Progressbar gleich RecordCount zu setzen.
Danke das war das Problem und jetzt funktioniert es auch.

LG

Mirko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz