![]() |
Delphi 5: Darstellung hängt bei längeren Abfragen
Ich habe eine Datenbankanwendung mit großen Datenmengen in Arbeit.
Dabei kommt es vor, daß eine Suche mehrere Minuten dauert. Solange ich selber damit arbeite kein Problem, aber es sollen auch Andere das Tool nutzen. Problem: während die Suche läuft, bekomme ich Delphi nicht dazu, das Fenster korrekt zu aktualisieren. Ich habe einen Counter eingebaut, der die Trefferquote anzeigt, damit man auch sieht daß der PC noch etwas tut (..nicht abgestürzt ist) Nach einiger Zeit hört Delphi 5 aber auf, den Bildschirm zu aktualisieren. Auch eingefügte .refresh Befehle bringen nichts, selbst wenn sie extrern über einen Timer aufgerufen werden. *grübel* |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
Ich würd mir mal überlegen ob das Suchverfahren nicht vielleicht optimiert werden könnte..
Aber versuch es mal mit nem Application.ProcessMessage; nach dem Refresh |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
die Suchroutine ist eingentlich ganz prima so wie sie ist ;)
Application.Processmessages habe ich schon versucht, das hilft aber nicht wirklich |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
dann lager es doch in einen thread aus
|
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
Ich hab in meiner Anwendung auch ein Fenster, das angezeigt, wie/welche Datensätze gerade gesucht/gefunden etc. werden.
Die Labels auf dem Fenster werden durch Application.ProcessMessages immer korrekt aktualisiert. Vielleicht ist dein Suchprozess so aufwändig, dass ProcessMessages nicht mehr regelmäßig zum Zuge kommt und deshalb diese Aussetzer entstehen. Auch wenn du davon überzeugt bist, eine optimale Suchroutine zu haben -- bei mehreren Minuten Abfragedauer müssten ja schon Millionen von Datensätzen vorliegen um diese lange Wartezeit zu gerechtfertigen. Sind es denn so viele? :?: Verrat doch mal was dazu, vielleicht kann man dir doch noch bei einer Optimierung der DB helfen. (Bei mir sind z.Zt. ca. 45000 Einträge vorhanden und selbst eine komplexe Abfrage dauert nur Millisekunden -- je nach Menge des Resultats) Gruß Pfoto |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
Die Abfrage selber ist sehr komplex, im Grunde eine gewichtete Umsatzbewertung nach Materialien und Lieferanten (wir müssen unseren Einkauf vordisponieren bei Lieferzeiten > 3 Monaten aus Übersee).
Es wird entschieden mehr (> 10) als nur eine Tabelle abgefragt, und eine Menge Stringoperationen dabei. Der Hauptbestand (Kundenrechnungen) sind aber auch schon > 60000 Datensätze. Ich versuche mal die Zentralroutine in einen eigenen Thread zu packen. Ich bin aber etwas skeptisch, ob die BDE das verträgt. |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
Zitat:
Aber ich denke wenn Du auch die Connection (TDatabase) im Thread erzeugst dürft es kein Problem geben. Aber wieso noch BDE? Welche Datenbank verwendest Du denn? |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
Zitat:
Per SQL dauert das Ganze aber noch entschieden länger als mit lokalen Kopien als Paradox-Datei, abgesehen davon daß ich eigentlich gar keine Lust habe die Ganze Auswertung (die ja doch so ganz ohne ist) jetzt auf SQL umzuschreiben |
Re: Delphi 5: Darstellung hängt bei längeren Abfragen
Zitat:
Zitat:
Und da wir die entsprechende Query nicht kennen wissen wir auch nicht ob du auch dort einige Fehler gemacht hast. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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