DELETE SELECTION

4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 3


DELETE SELECTION {(Tabellenname)}

ParameterTypBeschreibung
TabellennameTabelleZu bearbeitende Tabelle oder
Haupttabelle ohne Angabe

Beschreibung

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.

Die Option Datensätze vollständig löschen im Inspektorfenster erhöht die Löschgeschwindigkeit beim Verwenden von DELETE SELECTION.

Beispiele

1. 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
   OUTPUT FORM ([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, daß 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

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

Referenz

Datensatz sperren, DISPLAY SELECTION, Einführung in Mengen, MODIFY SELECTION, TRUNCATE TABLE.


4D - Documentation   Français   English   German   English   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next