![]() |
Datenbank: Paradox • Zugriff über: ODBC?
Unerklärliche CPU-Auslastung nach Datenbankspeicherung
Ahoi!
Ich hätte folgendes Problem: ich möchte meine Datenbank nach jeder Änderung physisch (d.h. die Post-Methode reicht mir nicht) auf der Festplatte speichern. Dazu wird im AfterPost-Ereignis die folgende Prozedur aufgerufen:
Delphi-Quellcode:
Die Variable "LetzterIndex" soll gewährleisten, dass nach der Speicherung wieder auf den letzten Datensatz zurückgesprungen wird. Dies funktioniert soweit alles auch ganz gut.
procedure TForm1.Datenbank2Disk(Datenbank: TDataSet);
var LetzterIndex: Word; begin LetzterIndex:=Datenbank.RecNo; with Datenbank do begin Close; Open; Edit; RecNo:=LetzterIndex; end; // ShowMessage('Trallala.'); end; Problematisch wird es aber, wenn ich im unmittelbaren Anschluss an die with-Anweisung den ShowMessage-Befehl (oder auch andere Befehle) gebe. Das Dialogfenster wird dann nur halbfertig angezeigt (d.h. kein Button vorhanden und wo der Text erscheinen sollte gibt es nur einen weissen Balken). Zudem zeigt der Taskmanager eine Programmauslastung von 98% an und das Programm reagiert nicht mehr. Gebe ich nach dem with-Block innherhalb der Prozedur keine Anweisung mehr, gibt es dieses Problem nicht. Weiß jemand, woran das liegen könnte? :gruebel: |
Re: Unerklärliche CPU-Auslastung nach Datenbankspeicherung
Ergänz einfach mal ein Application.ProcessMessage vor dem Dialog.
Und vor allem gehst Du wirklich über ODBC und nicht direkt mit der BDE auf die Paradox-Datenbank? Außerdem ist nicht unbeding gesagt das diese Lösung 100% funktioniert, da das Betriebssystem und die Festplatte ebenfalls noch Caches besitzen und diese du nicht so ohne weiteres "leeren" kannst. |
Re: Unerklärliche CPU-Auslastung nach Datenbankspeicherung
Zitat:
Damit sind dann deine ganzen Klimmzüge mit Open und Close überflüssig. ![]() Übrigens: Paradox ist keine richtige Datenbank, sondern nur eine Ansammlung von Tabellen, die als Dateien gespeichert werden. |
Re: Unerklärliche CPU-Auslastung nach Datenbankspeicherung
wird dein showmessage evtl aus einem thread aufgerufen? dann könnte das das problem mit der grafik und cpu auslastung sein
|
Re: Unerklärliche CPU-Auslastung nach Datenbankspeicherung
Zitat:
Shmias Vorschlag hat das Problem in der Tat gelöst. Den Aufruf von Application.ProcessMessages hatte ich zuvor auch probiert, der Effekt war jedoch der gleiche (Absturz). Danke nochmal an alle! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 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