Seite 1 von 1

Progressbar

Verfasst: Di, 02. Jun 2020 12:21
von Manfred
Hi,
der User will/muß was sehen, damit er nicht auf dumme Gedanken kommt. Im Indexaufbau habe ich einen Progressbar untergebracht, wobei sich das jetzt mit dem ADS erledigt hat. Der feudelt da so schnell durch, das man es eh nicht bemerkt. Aber wie sieht es mit komplexeren SQL Befehlen aus? in Xbase++ habe ich ja die ABläufe in der Hand und kann dementsprechend Laufbalken erzeugen und anzeigen, damit der User nicht denkt das Programm würde nichts mehr tun um dann irgendeine Panikreaktion zu generien. Kann man mit SQl Befehlen, die ja eigentlich auf dem Server ausgeführt werden, auch Laufbalken erzeugen, die Informationen über den Ablauf und dem aktuellen Fortschritt anzeigen? Oder wie macht ihr das?

Re: Progressbar

Verfasst: Di, 02. Jun 2020 12:27
von Marcus Herz
Theoretisch hat Postgres sogar eine solchen Callback. Hab ich aber noch nie ausprobiert,
Ich setz einfach den Mauszeiger auf Sanduhr, das reicht in der Regel, was mehr als 5 Sek. in einem interaktiven Fenster dauert, sollte man überdenken...

Re: Progressbar

Verfasst: Di, 02. Jun 2020 12:45
von UliTs
ich habe mich damit schon einmal viele Stunden beschäftigt, habe es aber nicht hinbekommen. Auch das Abbrechen eines zu lang laufenden SQL Statements hat nicht geklappt. :(
Alternativvorschlag: dafür unter xBase einen Thread mit eigener Connection aufmachen und darüber eventuell einen Abbruch über disconnect() realisieren.

Re: Progressbar

Verfasst: Di, 02. Jun 2020 12:56
von Manfred
die Frage wäre aber, ob der SQL Server sich von einem Abbruch beeindrucken läßt und im Hintergrund trotzdem weiter macht?

Re: Progressbar

Verfasst: Di, 02. Jun 2020 12:59
von UliTs
Wenn man die Connection ordnungsgemäß schließt, kann ich mir das nicht vorstellen.
Kannst Du das mal ausprobieren?
Uli

Edit: sorry, habe momentan kaum Zeit. Schade :-) . Ich würde gern da mehr mit Dir zusammenarbeiten :) .

Re: Progressbar

Verfasst: Di, 02. Jun 2020 15:49
von nightcrawler
Du kannst im ADS bei jeder Aktion eine Callback-Methode hinterlegen, auch bei SQL Abfragen. Dieser wird so ca alle 2 Sekunden aufgerufen - und je nach Rückgabewert damit die Aktion auch abbrechen.

AdsRegisterCallbackFunction101 heisst das Zauberwort.

Beispiele - allerdings in Delphi - https://www.jd-engineering.de/query-pro ... th-delphi/ und https://www.jd-engineering.de/enhance-t ... -callback/

Re: Progressbar

Verfasst: Di, 02. Jun 2020 16:53
von Tom
Ich mache es mir zuweilen mit einem Marquee-Progressbar bequem. Der wird vorher gestartet und hinterher beendet, und da er animiert ist, hat der Benutzer das Gefühl, dass was passiert. Mehr ist häufig sowieso ein Zuviel an Informationen. 8)