Datensatzabschnitte sind Zusammenstellungen anderer Datenabschnitte. Die Datenabschnitte in einem Datensatzabschnitt werden als Felder bezeichnet. Ein Datensatzabschnitt kann beliebig viele Felder enthalten. Bei den Feldern kann es sich um Basiselemente, Datenelemente oder andere Datensätze handeln.
Record primitiveRec type BasicRecord
integerField INT;
stringField STRING;
charField CHAR(30);
end
Die Erstellung einer Variablen auf der Grundlage dieses Datensatzabschnitts hat Ähnlichkeit
mit der Erstellung einer Variablen, die auf einem Datenelementabschnitt oder einem Basiselement basiert:myRecVar primitiveRec;
myRecVar.integerField = 6;
myRecVar.stringField = "Hello";
myRecVar.charField = "Character field";
myFunction(myRecVar);
Record myCustomerRecord type BasicRecord
customerNumber INT;
customerFirstName STRING;
customerLastName STRING;
customerBalance FLOAT;
end
Der Stereotyp BasicRecord kennzeichnet einen vielseitig einsetzbaren Datensatzabschnitt. Sie können diesen Stereotyp verwenden, wenn Sie eine oder mehrere Variablen zur Vereinfachung in einer Gruppe zusammenfassen wollen.
Record myCustomerRecordSQL type SQLRecord
{ tableNames = [["Customer"]], keyItems = [customerNumber] }
customerNumber int {column = "CustomerID"};
customerFirstName string {column = "FirstName"};
customerLastName string {column = "LastName"};
end
In diesem Fall ist der Datensatz mit einer Datenbanktabelle
namens Customer verknüpft, die die Spalten CustomerID, FirstName und LastName enthält. Wenn Sie einen Datensatz auf diese Weise mit einer Datenbanktabelle verknüpfen, kann EGL diese Informationen verwenden, um gemäß Ihren Interaktionen mit dem Datensatz auf die Datenbank zuzugreifen. Einfach ausgedrückt können Sie den Datensatz so verwenden, als ob er eine Zeile in der Datenbank wäre.myRecordVar myCustomerRecordSQL;
myRecordVar.customerNumber = 5;
get myRecordVar;
SysLib.writeStderr("Name: " +
myRecordVar.customerFirstName + " " +
myRecordVar.customerLastName);
Weitere Stereotypen, die Sie zu Datensatzabschnitten hinzufügen können, sind 'IndexedRecord', 'SerialRecord', 'RelativeRecord' und 'CSVRecord'. Sie werden für den Zugriff auf andere Dateitypen verwendet.
Datensatzabschnitte können strukturiert sein, um weitere Details über das Layout und die Organisation ihrer Felder bereitzustellen. In einem strukturierten Datensatz ist jedem Feld eine Stufennummer zugewiesen. Dies ist eine beliebige Nummer, die die Beziehung des Feldes zu anderen Feldern darstellt.
record structRec1 type BasicRecord
10 field1 int;
10 field2 int;
10 field3 int;
end
Record CustomerRecord type BasicRecord
10 phoneNumber CHAR(10);
20 areaCode CHAR(3);
20 localNumber CHAR(7);
end
In diesem Fall sind die Felder areaCode und localNumber Unterfelder des
Feldes phoneNumber. Sie können auf das Feld
phoneNumber zugreifen, um den gesamten Wert des Feldes abzurufen. Sie können aber auch
auf die Felder areaCode oder localNumber zugreifen, um einen Teil des Wertes
abzurufen, der im Feld phoneNumber enthalten ist.Strukturierte Datensätze können nur Felder mit fester Länge enthalten. Weitere Informationen zu den Einschränkungen und den Verwendungszwecken von strukturierten Datensätzen finden Sie unter Datensätze.