Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
entity.drop()
|
entity.drop() ( {mode} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
mode | Lange Ganzzahl |
![]() |
dk force drop if stamp changed: Löschen erzwingen, selbst wenn sich der Stempel inzwischen geändert hat. | |||||
Funktionsergebnis | Objekt |
![]() |
Ergebnis des Löschvorgangs | |||||
Die Methode entity.drop() löscht aus dem Datastore die in der Entity enthaltenen Daten aus der Tabelle, die der DataClass zugewiesen ist. Beachten Sie, dass die Entity im Speicher erhalten bleibt.
In einer Applikation mit mehreren Benutzern oder mehreren Prozessen wird die Methode entity.drop() mit dem optimistischen Sperrverfahren ausgeführt. Dabei wird der interne Sperrstempel bei jedem Sichern des Datensatzes automatisch erhöht. Weitere Informationen dazu finden Sie auf der Seite Entity sperren.
Standardmäßig, also ohne den Parameter mode, gibt die Methode einen Fehler zurück (siehe unten), wenn die gleiche Entity zwischenzeitlich durch einen anderen Prozess oder Benutzer geändert wurde (der Stempel hat sich geändert).
Mit dem Parameter mode können Sie die Option dk force drop if stamp changed übergeben, so dass die Entity gelöscht wird, auch wenn sich der Stempel geändert hat (und der Primärschlüssel gleich bleibt).
Ergebnis
Das von entity.drop() zurückgegebene Opjekt enthält folgende Eigenschaften:
Eigenschaft | Typ | Beschreibung | |
success | Boolean | wahr bei erfolgreichem Löschvorgang, sonst falsch | |
Nur bei Fehler verfügbar: | |||
status(*) | Zahl | Fehler-Code, siehe unten | |
statusText(*) | Text | Beschreibung des Fehlers, siehe unten | |
Nur bei Fehler beim pessimistischen Sperrverfahren verfügbar: | |||
LockKindText | Text | "Gesperrt durch Datensatz" | |
lockInfo | Objekt | Information über Ursprung des Sperrens | |
task_id | Zahl | Prozess Id | |
user_name | Text | Benutzername der Sitzung auf dem Rechner | |
user4d_id | Text | Benutzername im 4D Datenbankverzeichnis | |
host_name | Text | Rechnername | |
task_name | Text | Prozessname | |
client_version | Text | ||
Nur bei ernstem Fehler verfügbar (z.B. Primärschlüssel existiert bereits, Festplatte voll...): | |||
errors | Collection von Objekten | ||
message | Text | Fehlermeldung | |
component signature | Text | interne Signatur der Komponente (z.B. "dmbg" steht für die Datenbankkomponente) | |
errCode | Zahl | Fehlercode |
(*) Bei einem Fehler in den Eigenschaften status und statusText des Objekts Result können folgende Werte zurückgegeben werden:
Konstante | Wert | Kommentar |
dk status entity does not exist anymore | 5 | Die Entity existiert nicht mehr in den Daten. Dieser Fehler kann in folgenden Fällen auftreten:
Zugewiesener Statustext: "Entity does not exist anymore" |
dk status locked | 3 | Die Entity wird durch pessimistisches Sperrverfahren gesperrt. Zugewiesener Statustext: "Already locked" |
dk status serious error | 4 | Ein ernsthafter Fehler ist ein low-level Fehler in der Anwendung, wie z.B. duplizierter Schlüssel, Hardware Fehler, etc. Zugewiesener Statustext: "Other error" |
dk status stamp has changed | 2 | Der interne Stempelwert der Entity passt nicht zum Wert der in den Daten gespeicherten Entity (optimistisches Sperrverfahren).
|
Beispiel ohne die Option dk force drop if stamp changed:
C_OBJECT($employees;$employee;$status)
$employees:=ds.Employee.query("lastName=:1";"Smith")
$employee:=$employees.first()
$status:=$employee.drop()
Case of
:($status.success)
ALERT("Sie haben "+$employee.firstName+" "+$employee.lastName gelöscht) //Die gelöschte Entity bleibt im Speicher
:($status.status=dk status stamp has changed)
ALERT($status.statusText)
End case
Beispiel mit der Option dk force drop if stamp changed:
C_OBJECT($employees;$employee;$status)
$employees:=ds.Employee.query("lastName=:1";"Smith")
$employee:=$employees.first()
$status:=$employee.drop(dk force drop if stamp changed)
Case of
:($status.success)
ALERT("Sie haben "+$employee.firstName+" "+$employee.lastName gelöscht) // Die gelöschte Entity bleibt im Speicher
:($status.status=dk status entity does not exist anymore)
ALERT($status.statusText)
End case
Produkt: 4D
Thema: ORDA - Entity
Erstellt: 4D v17
4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)