4D v14.3

DELETE SUBRECORD

Home

 
4D v14.3
DELETE SUBRECORD

DELETE SUBRECORD 


 

DELETE SUBRECORD ( Untertabelle ) 
Parameter Typ   Beschreibung
Untertabelle  Untertabelle in 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

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Untertabellen
Nummer: 96

Dieser Befehl ist überholt und sollte nicht mehr verwendet werden.

 
GESCHICHTE 

Geändert: 4D v11 SQL

 
SIEHE AUCH 

ALL SUBRECORDS
QUERY SUBRECORDS
Records in subselection
SAVE RECORD

 
ARTIKELVERWENDUNG

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)