Die benutzerdefinierte Konfliktlösung kann unterschiedliche Formen annehmen. In einigen Anwendungen kann die Konfliktlösung Folgendes bewirken:
Die Datumsangaben der ursprünglichen Transaktionen werden verglichen. Weitere Hinweise finden Sie unter Datumskonflikte auflösen.
Berechnungen auf den Ergebnissen von zwei oder mehr Aktualisierungen werden durchgeführt. Weitere Hinweise finden Sie unter Inventurkonflikte lösen.
Der Konflikt wird in einer Tabelle aufgezeichnet. Weitere Hinweise finden Sie unter Die CURRENT REMOTE USER-Spezialkonstante verwenden.
Die benutzerdefinierte Konfliktlösung erfordert, dass Sie RESOLVE UPDATE-Trigger schreiben.
RESOLVE UPDATE-Trigger lösen aus, bevor die jeweilige Zeile aktualisiert wird. Die Syntax für einen RESOLVE UPDATE-Trigger lautet:
CREATE TRIGGER Triggername RESOLVE UPDATE OF Spaltenname ON Tabellenname [ REFERENCING [ OLD AS alter_Wert ] [ NEW AS neuer_Wert ] [ REMOTE AS Remote_Wert ] ] FOR EACH ROW BEGIN ... END
Die REFERENCING-Klausel ermöglicht den Zugriff auf die Werte in der Zeile der zu aktualisierenden Tabelle (OLD), auf die Werte,
die mit der Zeile aktualisiert werden (NEW), und auf die Zeilen, die entsprechend der VERIFY-Klausel (REMOTE) vorhanden sein
sollten. Nur Spalten in der VERIFY-Klausel können in der REMOTE AS-Klausel referenziert werden; andere Spalten geben den Fehler
column not found
zurück.
CURRENT REMOTE USER wird von DBREMOTE gesetzt, wenn die undokumentierte REMOTE USER-Anweisung ausgeführt wird. Der Wert ist NULL, außer bei Verbindungen von DBREMOTE.
CURRENT REMOTE USER kann in RESOLVE UPDATE-Trigger, die Reports über Konflikte in eine Tabelle platzieren, dazu verwendet werden, um den Benutzer zu identifizieren, der einen Konflikt erzeugt.
Datumskonflikte auflösen
Inventurkonflikte lösen
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |