Datensätze

Ein Datensatz ist eine Gruppe von Datenelementen, die als Felder bezeichnet werden. Ein Datensatzfeld ist eine Variablendefinition in einem Datensatzabschnitt. Die Variable kann auf folgenden Typen basieren:
  • Basiselementdatentyp (Primitive-Datentyp)
  • Datenelementabschnitt (DataItem)
  • Anderer Datensatz
  • Wörterverzeichnis (Dictionary)
  • Feldgruppenwörterverzeichnis (ArrayDictionary)
  • Feldgruppe eines beliebigen vorstehenden Typs

Ein Datensatz ist üblicherweise einem externen Datenspeicher wie einem Datensatz in einer Datei oder einer Zeile in einer Tabelle oder Sicht einer relationalen Datenbank zugeordnet. Für diese Zuordnung verwendet EGL das Konzept des Datensatzstereotyps und zugehöriger Eigenschaften (siehe Stereotype). Wenn der Datensatz an einen externen Datenspeicher gebunden wird, müssen die Felder im Datensatz den Datenelementen im externen Datenspeicher entsprechen. Bei SQL (relationale Datenbanksätze) entsprechen die Felder den Spalten in der Datenbanktabelle.

Das folgende Beispiel zeigt einen EGL-Datensatz (Record), der für eine SQL-Datenbank angepasst wurde:
Record CustomerRecord type SQLRecord
	customerNumber INT;            // Schlüsselfeld
	customerName CHAR(25);
	customerAddr1 CHAR(25);
	customerAddr2 CHAR(25);
	customerAddr3 CHAR(25);
	customerBalance MONEY;
end
Dieser Datensatz ist nur ein Modell. Bevor Sie ihn zum Speichern von Informationen aus einer Datenbank verwenden können, müssen Sie eine Variable auf der Basis des folgenden Abschnitts deklarieren:
myCustomer CustomerRecord;

Jetzt verfügen Sie über einen Bereich zum Speichern von Daten; die Daten selber fehlen jedoch noch. Wenn man den Datensatzabschnitt mit einem Entwurf für ein Bücherregal vergleicht, dann besitzen Sie nun zwar ein echtes Bücherregal, die Regale selbst sind jedoch noch leer. Die Variable myCustomer enthält ein leeres Regal für jedes Feld im Datensatzprototyp 'Record'. Diese Regale werden mit der Anweisung 'get' gefüllt.

Für EGL-Anweisungen wird die Punktsyntax verwendet, um auf Felder in einem Datensatz zu verweisen, wie im folgenden Beispiel:
myCustomer.customerBalance = 0;

Zusätzlich zum Definieren von Datensätzen, die den Informationen in der Tabelle einer relationalen Datenbank entsprechen, können Sie auch Datensätze für serielle, indexierte und relative Dateien definieren. Sie können auch Datensätze zum Speichern von Informationen definieren, die Sie während der Ausführung des Programms benötigen, wie beispielsweise Zähler, Summen etc.

EGL umfasst zwei spezielle Datensatztypen mit einzigartigen Merkmalen:
  • Strukturierte Datensätze. Felder in diesen Datensätzen umfassen nummerierte Ebenen. Verwenden Sie diese Datensätze, wenn die Position der Felder im Datensatzaufbau von kritischer Bedeutung ist (siehe Strukturierte Datensätze).
  • Datensatz variabler Länge. Normalerweise (aber nicht notwendigerweise) handelt es sich hierbei um strukturierte Datensätze. Diese Datensätze verwenden Felder im Datensatzaufbau, die zur Ausführungszeit geändert werden können und Informationen zur Gesamtlänge von Datensätzen enthalten (siehe Datensätze variabler Länge).