4D v16.3

DELETE SELECTION

Home

 
4D v16.3
DELETE SELECTION

DELETE SELECTION 


 

DELETE SELECTION {( Tabellenname )} 
Parameter Typ   Beschreibung
Tabellenname  Tabelle in Tabelle zum Bearbeiten oder Haupttabelle ohne Angabe

Der Befehl DELETE SELECTION löscht alle Datensätze in der aktuellen Auswahl der Tabelle Tabellenname. Ist die aktuelle Auswahl leer, hat er keine Auswirkung. Wurden die Datensätze gelöscht, ist die aktuelle Auswahl von Tabellenname leer.
Datensätze, die während einer Transaktion gelöscht werden, sind für andere Benutzer und Prozesse gesperrt, bis die Transaktion bestätigt oder abgebrochen wird.
Datensätze, die nicht gelöscht werden konnten, weil sie von einem anderen Prozess gesperrt waren, legt 4D in die Menge “LockedSet”.

Tabellenname ist optional. Wird der Parameter nicht angegeben, bezieht sich DELETE SELECTION auf die Haupttabelle.

Warnung: Das Löschen einer Datensatzauswahl sollte mit Bedacht verwendet werden, denn die Operation ist dauerhaft und lässt sich nicht mehr rückgängig machen.

Ist die Option Datensätze vollständig löschen im Inspektorfenster nicht markiert, erhöht das die Löschgeschwindigkeit beim Verwenden von DELETE SELECTION. Weitere Informationen dazu finden Sie im Handbuch 4D Designmodus im Abschnitt Datensätze definitiv löschen.

Folgendes Beispiel zeigt alle Datensätze aus der Tabelle [People] und lässt den Anwender wählen, welche er löschen möchte. Das Beispiel ist in zwei Teile gegliedert. Der erste Teil ist eine Methode, die Datensätze anzeigt, der zweite eine Objektmethode für die Schaltfläche Löschen.

Die Methode:

 ALL RECORDS([People]` Wähle alle Datensätze
 FORM SET OUTPUT([People];"Listing") ` Setze Formular
 DISPLAY SELECTION([People]` Zeige alle Datensätze an

Die Objektmethode für die Schaltfläche Löschen, die im Fußteil des Ausgabeformulars erscheint. Sie verwendet die vom Benutzer ausgewählten Datensätze (die Menge UserSet) zum Löschen der Auswahl. Hat der Benutzer keine Auswahl getroffen, hat DELETE SELECTION keine Auswirkung.

  ` Bestätige, dass der Benutzer die Datensätze wirklich löschen will
 CONFIRM("Sie haben "+String(Records in set("UserSet"))+" Personen zum Löschen gewählt."
 +Char(13)+"Klicken Sie zum Löschen auf OK.")
 If(OK=1)
    USE SET("UserSet") ` Verwende die vom Benutzer gewählten Datensätze
    DELETE SELECTION([People]` Lösche Datensätze in Auswahl
 End if
 ALL RECORDS([People]` Wähle alle Datensätze

Datensätze, die während der Ausführung von DELETE SELECTION gesperrt sind, werden nicht gelöscht. Sie werden in der Menge LockedSet abgelegt. Mit dieser Menge können Sie anschließend prüfen, ob Datensätze gesperrt waren. Die folgende Schleife wird ausgeführt, bis alle Datensätze gelöscht sind:

 Repeat ` Wiederhole für alle gesperrten Datensätze
    DELETE SELECTION([ThisTable])
    If(Records in set("LockedSet")#0) ` Gibt es gesperrte Datensätze
       USE SET("LockedSet") ` Wähle nur die gesperrten Datensätze
    End if
 Until(Records in set("LockedSet")=0) ` Bis es keine gesperrten Datensätze mehr gibt



Siehe auch 

DISPLAY SELECTION
Einführung in Mengen
MODIFY SELECTION
TRUNCATE TABLE
Überblick zu Datensatz sperren

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Auswahl
Nummer: 66

Dieser Befehl ändert die Systemmenge LockedSetDieser Befehl ändert die aktuelle AuswahlThis command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: < 4D v6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)