Wenn Sie die Anweisung 'add' im Kontext von DL/I verwenden, fügt diese Anweisung ein Segment oder eine Gruppe von Segmenten zu einer hierarchischen Datenbank hinzu.
Sie können die Anweisung 'add' auch dazu verwenden, mehrere Segmente aus einer dynamischen Feldgruppe von DLISegment-Datensätzen in eine DL/I-Datenbank zu stellen.

add myCustomer, myLocation, myOrder;
ISRT STSCCST*D (STQCCNO = :myCustomer.customerNo)
STSCLOC (STQCLNO = :myLocation.locationNo)
STPCORD
// Definition von DLISegment-Datensätzen mithilfe der Eigenschaft 'hostVarQualifier'
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";
//Füllen der Felder im Bestellungsdatensatz
fillOrder(myOrder);
//Hinzufügen des neuen Bestellungsdatensatzes
try
add myOrder;
onException(dex DLIException)
myErrorHandler(dex);
end
ISRT STSCCST (STQCCNO = :myCustomer.customerNo)
STSCLOC (STQCLNO = :myLocation.locationNo)
STPCORD
Qualifizierte Segmentsuchparameter (SSAs) für Kunden (Customer) und Standort (Location) identifizieren die übergeordneten Segmente für das neue Bestellsegment (Order). DL/I fügt das neue Bestellsegment an einer Position hinzu, die durch das Schlüsselelementfeld (keyItem) für dieses Segment, orderDateNo (STQCODN), bestimmt wird.
if (myOrder is unique)
...
end
Folgende Laufzeitfehler können möglicherweise auftreten: