Lade...
 

Unlink

Unlink

Unlink(zugriffsAusdruck), Unlink(STACK), Unlink(zugriffsAusdruck, backRef), Unlink(STACK, STACK)

Parameter:  ein Zugriffsausdruck, Name der Rückreferenz.

Stack
Stack Position Beschreibung
Stack(In) Top Zielobjekt
  Top-1 zu entfernendes Objekt
Stack(Out) Top -

Parameter:  ein Zugriffsausdruck als eine 1-m-Referenz, Name der Rückreferenz

Stack
Stack Position Beschreibung
Stack(In) Top Zielobjekt
Stack(Out) Top -

Der vom Zielobjekt ausgehend über den Zugriffsausdruck erreichte Pointer p soll nach dieser Operation den Wert NULL enthalten oder das Objekt aus Stack-Top-1 wird aus der - ausgehend vom Zielobjekt - über den Zugriffsausdruck erreichten Collection c entfernt.

Hinweis: Wird ein Element durch Unlink aus einer Collection (Liste) entfernt, dann wird dieses Element bei mehreren Duplikaten nur einmalig entfernt.
Beim Raussuchen dieses Elements aus der Liste, wird die Liste dabei von hinten nach vorne durchsucht, da die zuletzt verlinkten Objekte meist zuerst wieder entfernt werden. Falls viele Elemente aus einer sehr großen Liste entfernt werden, dann beeinflusst die Reihenfolge, in der die Elemente entfernt werden die Performance der Gesamtoperation.

Beide Objekte müssen entweder transient oder persistent sein. Wenn der im Zielobjekt ausgewählte Pointer im DDI als 1-1- oder 1-m-Referenz  oder die im Zielobjekt ausgewählte Collection im DDI als m-1- oder m-m-Referenz deklariert wurde, ist der Name einer Rückreferenz als zweiter Operand anzugeben. Auch die Rückreferenz (Pointer oder Collection) wird nach Überprüfung des im DDI angegeben Typs zurückgesetzt. Bei einem Typkonflikt wird die gesamte Operation abgebrochen. Dies gilt auch, falls eine vorgefundene Rückreferenz nicht auf das Pointer p enthaltende Objekt zeigt.

Hinweis:  Bei einem persistenten Objekt beginnt eine Transaktion.

Verwandte Themen