Version 3
DELETE SUBRECORD (Untertabelle)
Parameter | Typ | Beschreibung | |
Untertabelle | Untertabelle | Untertabelle, in der ein Unterdatensatz | |
gelöscht werden soll |
Beschreibung
Der Befehl DELETE SUBRECORD löscht den aktuellen Unterdatensatz von Untertabelle. Ist kein aktueller Unterdatensatz vorhanden, wird DELETE SUBRECORD nicht ausgeführt.
Nach dem Aufruf von DELETE SUBRECORD ist die aktuelle Unterauswahl von Untertabelle leer. DELETE SUBRECORD kann deshalb nicht zum Löschen einer Auswahl von Unterdatensätzen benutzt werden.
Das Löschen eines Unterdatensatzes ist endgültig, wenn Sie den Datensatz sichern, zu dem die Untertabelle gehört. Löschen Sie den Hauptdatensatz, werden alle dazugehörigen Unterdatensätze ebenfalls gelöscht.
Um eine Unterauswahl zu löschen, erstellen Sie diese zuerst und löschen Sie den ersten Unterdatensatz. Erstellen Sie dann erneut die Unterauswahl und löschen wieder den ersten Unterdatensatz, usw..
Beispiele
1. Folgendes Beispiel löscht alle Unterdatensätze einer Untertabelle:
ALL SUBRECORDS([People]Children) While (Records in subselection([People]Children)>0) DELETE SUBRECORD([People]Children) ALL SUBRECORDS([People]Children) End while
2. Folgendes Beispiel löscht die Unterdatensätze in der Tabelle [People], wenn das Kind 12 Jahre oder älter ist:
ALL RECORDS([People]) ` Wähle alle Datensätze For ($vlRecord;1;Records in selection([People])) `Suche für alle Datensätze der Tabelle ` diejenigen mit Unterdatensätzen mit den Kriterien QUERY SUBRECORDS([People]Children;[People]Children'Age>=12) ` Durchlaufe, bis die Suche keine weiteren Unterdatensätze findet. While (Records in subselection([People]Children)>0) ` Lösche Unterdatensatz DELETE SUBRECORD([People]Children) ` Suche erneut QUERY SUBRECORDS([People]Children;[People]Children'Age>=12) End while SAVE RECORD([People]) ` Sichere Hauptdatensatz NEXT RECORD([People]) End for
Referenz
ALL SUBRECORDS, QUERY SUBRECORDS, Records in subselection, SAVE RECORD.