4D v16.3Datenbankmethode On Exit |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Datenbankmethode On Exit
Datenbankmethode On Exit
Die Datenbankmethode On Exit wird einmal aufgerufen, wenn Sie eine Anwendung verlassen. Dies geschieht in folgenden 4D Umgebungen:
Hinweis: Die Datenbankmethode On Exit wird NICHT auf 4D Server ausgelöst. Die Datenbankmethode On Exit wird automatisch von 4D ausgelöst; diese Datenbankmethode können Sie im Gegensatz zu Projektmethoden nicht selbst per Programmierung aufrufen. Sie können auch Unterroutinen verwenden. Eine Anwendung wird verlassen, wenn folgendes passiert:
Beim Verlassen der Anwendung führt 4D folgende Aktionen aus:
Die Datenbankmethode On Exit ist der richtige Ort, um:
Hinweis: Beachten Sie, dass die Datenbankmethode On Exit ein lokaler/Client Prozess ist, d.h. er kann nicht auf die Datendatei zugreifen. Wenn also die Datenbankmethode On Exit eine Suche oder Sortierung ausführt, wird ein 4D Client, der gerade beendet, eingefroren und nicht abgeschlossen. Müssen Sie auf Daten zugreifen, während ein Client die Anwendung verlässt, erstellen Sie in der Datenbankmethode On Exit einen neuen globalen Prozess, der auf die Datendatei zugreifen kann. Stellen Sie in diesem Fall sicher, dass der neue Prozess korrekt abgeschlossen ist, bevor die Datenbankmethode On Exit endet, z.B. über Interprozessvariablen. Hinweis: In einer Client/Server-Umgebung verhält sich Datenbankmethode On Exit unterschiedlich. Das hängt davon ab, ob der Benutzer manuell beendet (über den Menübefehl Beenden oder Aufrufen des Befehls QUIT 4D) oder ob der 4D Server abschaltet, was alle Clients zum Beenden zwingt. Um laufende Prozesse bei unerwartetem Abschalten korrekt zu stoppen, müssen Sie die Funktion Process aborted in jeder Schleife testen (for, while, repeat), die länger als eine Sekunde laufen kann. Process aborted gibt Wahr zurück, wenn 4D (lokal, remote oder 4D Server) gerade beendet, d.h. laufende Bearbeitungen stoppen sofort. Brechen Sie in diesem Fall alle Abläufe, wie CANCEL TRANSACTION, etc. ab und beenden so schnell wie möglich. Selbst wenn Sie Zeit haben, wenn der Benutzer manuell beendet, verbleibt keine Zeit, wenn die Anwendung zum Beenden gezwungen wird. Folgendes Beispiel umfasst alle Methoden in der Datenbank zum Verwalten signifikanter Ereignisse während einer Arbeitssitzung und legt eine Beschreibung in ein Textdokument mit Namen “Journal.”
` Datenbankmethode On Startup
` Projektmethode WRITE JOURNAL Beachten Sie, dass das Dokument jedes Mal geöffnet und geschlossen wird. Außerdem wird eine Semaphore als Zugriffsschutz für das Dokument eingerichtet.—Wir wollen nicht, dass zwei Prozesse gleichzeitig auf das Journal zugreifen können.
` Projektmethode M_ADD_RECORDS Diese Methode wird durchlaufen, bis der Benutzer die Dateneingabe abbricht oder die Datenbank verlässt.
` Formularmethode [Table1];"Input"
` M_QUIT Die Methode arbeitet mit einem Trick. Beim Aufrufen von QUIT 4D wirkt sich der Befehl sofort aus. Der hervorrufende Prozess befindet sich in Stopposition, bis die Datenbank verlassen wird. Da dieser Prozess einer der Prozesse sein kann, in dem Dateneingabe stattfindet, erfolgt der Aufruf von QUIT 4D in einem lokalen Prozess, der nur für diesen Zweck startet: ` Projektmethode DO_QUIT
` Datenbankmethode On Exit Hinweis: Prozesse, die mit "ML_..." oder "M_..." beginnen, werden von Menübefehlen mit der Eigenschaft Starte Neuen Prozeß gestartet. Das sind in diesem Beispiel die Prozesse, die bei Aufrufen des Menübefehls Neuer Datensatz starten. Mit dem Test (Current time-$vhStart)>=?00:01:00? kann die Datenbankmethode die Wiederholungsschleife “Warte auf anderen Prozess” verlassen, wenn der andere Prozess nicht sofort aktiv wird.
Hinweis: $xx ist der Name des lokalen Prozesses, den 4D zur Ausführung von Datenbankmethode On Exit startet.
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
Erstellt: ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||