4D v14.3DELETE SUBRECORD |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
DELETE SUBRECORD
|
DELETE SUBRECORD ( Untertabelle ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Untertabelle | Untertabelle |
![]() |
Untertabelle, in der ein Unterdatensatz gelöscht werden soll | |||||
Untertabellen werden ab 4D Version 11 nicht mehr unterstützt. Ein Kompatibilitätsmechanismus sorgt dafür, dass dieser Befehl in konvertierten Datenbanken weiter funktioniert. Wir raten jedoch dringend, alle Untertabellen durch verknüpfte Standardtabellen zu ersetzen.
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..
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
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
Produkt: 4D
Thema: Untertabellen
Nummer:
96
Geändert: 4D v11 SQL
ALL SUBRECORDS
QUERY SUBRECORDS
Records in subselection
SAVE RECORD
4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)