Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fortschrittanzeige bei Index (https://www.delphipraxis.net/105176-fortschrittanzeige-bei-index.html)

Fritz01 17. Dez 2007 15:40

Datenbank: Absolute Database • Version: 5.15 • Zugriff über: ABSTable, DataSource

Fortschrittanzeige bei Index
 
Hallo,
möchte erreichen, dass während der Indexerstellung der Fortschritt mittels Progressbar angezeigt wird. Habe das mal so gemacht. Die Procedure wird mit
Delphi-Quellcode:
frmUpdate.Show;
aufgerufen.
Delphi-Quellcode:
procedure TfrmUpdate.FormPaint(Sender: TObject);
var i,s,t : integer;
begin
  t := frmMain.tTable.RecordCount;
  s := t div ProgressBar.max;
  for i := 0 to ProgressBar.max do
  begin
    ProgressBar.Position := i;
    sleep(s);
  end;
  close;
end;
1) Es erscheint mir zu langsam, d. h. ich würde gerne einen direkten Bezug zur Indexerstellung erreichen. Hier habe ich die Anzahl der Datensätze zur Steuerung der Progressbar gewählt.
2) Ist das in FormPaint richtig untergebracht?
Wer hat dazu entsprechende Tipps? Danke
Fritz

Pfoto 17. Dez 2007 15:56

Re: Fortschrittanzeige bei Index
 
Hallo Fritz01!

soweit ich weiß, arbeitet der SQL-Server doch abgekapselt
eine Aufgabe ab, d.h. er sendet nicht bei jedem Datensatz
ein Event auf das man reagieren könnte.
Ich habe z.B. schon etwas gesucht, um bei einer SQL-Abfrage
die Wartezeit per Progressbar anzuzeigen... aber das geht
halt so nicht.

Mir wurde dann empfohlen, eine "Marquee"-Progressbar zu nehmen,
diese zeigt diesen durchhuschenden kurzen Balken an, was
dann signalisieren soll "unbestimmte Wartezeit".

Die Indexerstellung läuft doch nicht so lange, dass man den
User damit verunsichern könnte, oder? Zudem brauchst du nicht
extra noch mit Sleep eine Wartezeit einzubauen. Das sehe
ich als unnötig an.


Ich persönlich würde die Methode im OnShow-Bereich ansiedeln,
denn bei OnPaint kannst du nicht ausschließen, dass es noch
weitere Male aufgerufen wird.

Gruß
Pfoto

Fritz01 17. Dez 2007 17:30

Re: Fortschrittanzeige bei Index
 
@ pfoto,
danke für Antwort.
OnShow ergibt: Eigenschaft Visible kann in OnShow oder OnHide nicht verändert werden.
Deshalb in Paint.
Falls es da wirklich keine Möglichkeit gibt muß man das wohl vergessen. Schade!
Nochmals danke
Fritz


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 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