Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
entity.drop()

entity.drop() 


 

entity.drop() ( {mode} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
mode  Lange Ganzzahl in dk force drop if stamp changed: Löschen erzwingen, selbst wenn sich der Stempel inzwischen geändert hat.
Funktionsergebnis  Objekt in 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:

EigenschaftTypBeschreibung
successBooleanwahr bei erfolgreichem Löschvorgang, sonst falsch
Nur bei Fehler verfügbar:
status(*)ZahlFehler-Code, siehe unten
statusText(*)TextBeschreibung des Fehlers, siehe unten
Nur bei Fehler beim pessimistischen Sperrverfahren verfügbar:
LockKindTextText"Gesperrt durch Datensatz"
lockInfoObjektInformation über Ursprung des Sperrens
task_idZahlProzess Id
user_nameTextBenutzername der Sitzung auf dem Rechner
user4d_idTextBenutzername im 4D Datenbankverzeichnis
host_nameTextRechnername
task_nameTextProzessname
client_versionText
Nur bei ernstem Fehler verfügbar (z.B. Primärschlüssel existiert bereits, Festplatte voll...):
errorsCollection von Objekten
messageTextFehlermeldung
component signatureTextinterne Signatur der Komponente (z.B. "dmbg" steht für die Datenbankkomponente)
errCodeZahlFehlercode

(*) 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:
  • Die Entity wurde gelöscht (der Stempel hat sich geändert und der Speicherplatz ist jetzt frei)
  • Die Entity wurde gelöscht und durch eine andere mit einem anderen Primärschlüssel ersetzt (der Stempel hat sich geändert und eine neue Entity verwendet jetzt den Speicherplatz). Mit entity.drop() wird dieser Fehler beim Verwenden der Option dk force drop if stamp changed zurückgegeben. Mit entity.lock() wird dieser Fehler beim Verwenden der Option dk reload if stamp changed zurückgegeben.

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).

  • mit entity.save( ): nur Fehler, wenn die Option dk auto merge nicht verwendet wird
  • mit entity.drop(): nur Fehler, wenn die Option dk force drop if stamp changed nicht verwendet wird
  • mit entity.lock(): nur Fehler, wenn die Option dk reload if stamp changed nicht verwendet wird
Zugewiesener Statustext: "Stamp has changed"

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



Siehe auch 

entity.save( )

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: ORDA - Entity

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v17

 
ARTIKELVERWENDUNG

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)