4D v16.3Transaktionen anhalten |
||
|
4D v16.3
Transaktionen anhalten
Transaktionen anhalten
Eine Transaktion anhalten ist nützlich zum Durchführen von Operationen innerhalb einer Transaktion, für die keine Steuerung durch die Transaktion erforderlich ist.
Hier ein Anwendungsbeispiel für eine angehaltene Transaktion. In einer Anwendung mit Rechnungen wollen wir während einer Transaktion eine neue Rechnungsnummer erhalten. Diese Nummer wird berechnet und in der Tabelle [Settings] gespeichert. Bei mehreren Benutzern müssen miteinander konkurrierende Zugriffe geschützt werden. Wegen der Transaktion kann jedoch die Tabelle [Settings] durch einen anderen Benutzer gesperrt sein, obwohl diese Daten von der Haupttransaktion unabhängig sind. Für diesen Fall können Sie die Transaktion beim Zugreifen auf die Tabelle anhalten: //Standardmethode zum Erstellen einer Rechnung Die Methode GetInvoiceNum hält die Transaktion vor der Ausführung an. Beachten Sie, dass dieser Code auch funktioniert, wenn die Methode außerhalb einer Transaktion aufgerufen wird: //Projektmethode GetInvoiceNum Ist eine Transaktion angehalten, gilt folgendes:
Folgende Grafik gibt einen Überblick: Während Transaktion A bearbeitete Werte (Datensatz ID1 erhält Val11) sind nicht in der neuen Transaktion B verfügbar, die während der "angehaltenen" Zeit angelegt wird. Während der "angehaltenen" Zeit bearbeitete Werte (Datensatz ID2 erhält Val22 und Datensatz ID3 erhält Val33) werden gesichert, selbst nachdem Transaktion A abgebrochen ist. Es gibt spezifische Featuren zur Fehlerverwaltung:
Die vorhandene Funktion In transaction gibt Wahr zurück, wenn eine Transaktion gestartet wurde, auch wenn sie angehalten ist. Über die neue Funktion Transaction active können Sie herausfinden, ob die aktuelle Transaktion angehalten ist. Sie gibt in diesem Fall Falsch zurück. Dagegen geben beide Befehle Falsch zurück, wenn keine Transaktion gestartet wurde. Sie müssen dann u.U. die vorhandene Funktion Transaction level verwenden, die in diesem Kontext 0 zurückgibt. Nachfolgende Grafik zeigt die verschiedenen Kontexte für Transaktionen und die jeweils von den Befehlen zurückgegebenen Werte:
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
Erstellt: 4D v15 R4 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |