Im Kontext von DL/I entfernt die Anweisung 'delete' ein Segment aus einer hierarchischen Datenbank.
Die Anweisung 'delete' generiert eine DL/I-Anweisung DLET für Löschen. In DL/I muss ein Segment abgerufen und temporär gesperrt werden, bevor es gelöscht werden kann. Verwenden Sie die EGL-Anweisung 'get' in Kombination mit der Option 'forUpdate', bevor Sie die Anweisung 'delete' verwenden.
Im folgenden Beispiel wird die Option 'forUpdate' verwendet:
if (userRequest == "D")
try
get myRecord forUpdate;
onException(dex DLIException)
myErrorHandler(dex); // beendet das Programm
end
try
delete myRecord;
onException(dex DLIException)
myErrorHandler(dex);
end
end

Record CustomerRecord type DLISegment
{ segmentName="STSCCST", keyItem="customerNo", hostVarQualifier="myCustomer" }
...
end
Record LocationRecord type DLISegment
{ segmentName="STSCLOC", keyItem="locationNo", hostVarQualifier="myLocation" }
...
end
Record OrderRecord type DLISegment
{ segmentName="STPCORD", keyItem="orderDateNo", hostVarQualifier="myOrder" }
...
end
//Erstellung von Variablen für die Datensätze
myCustomer CustomerRecord;
myLocation LocationRecord;
myOrder OrderRecord;
//Erstellung eines Suchparameters für Segmente
myCustomer.customerNo = "005001";
myLocation.locationNo = "000022";
myOrder.orderDateNo = "20050730A003";
//Angeforderten Bestelldatensatz temporär sperren
try
get myOrder forUpdate;
onException(dex DLIException)
myErrorHandler(dex);
end
//Löschen der Bestellung
try
delete myOrder;
onException(dex DLIException)
myErrorHandler(dex);
end
Die Anweisung 'get...forUpdate' generiert qualifizierte SSAs für Kunden (Customer),
Standort (Location) und Bestellung (Order):GHU STSCCST (STQCCNO = :myCustomer.customerNo)
STSCLOC (STQCLNO = :myLocation.locationNo)
STPCORD (STQCODN = :myOrder.orderDateNo)
Die Anweisung 'delete' generiert anschließend eine einzelne
Codezeile:DLET STPCORD