lengthItem

Die Eigenschaft 'lengthItem' gibt ein Feld an, das verwendet wird, wenn EGL einen Datensatz variabler Länge liest oder schreibt.

Verwenden Sie die Eigenschaft 'lengthItem' nur mit einem der folgenden Stereotypen:

EGL setzt das Feld beim Lesen von Daten aus einer Datei in den Datensatz und verwendet das Feld, um zu bestimmen, wie viele Byte in die Datei geschrieben werden sollen. Die maximale Länge des Datensatzes basiert auf den für den Datensatz definierten Feldern. Wenn ein Datensatz variabler Länge in eine Datei geschrieben wird, muss der Wert in dem von 'lengthItem' angegebenen Feld kleiner-gleich der maximalen Länge sein.

Das Längenfeld kann eine der folgenden Variablen sein:

Das Längenfeld ist eine ganze Zahl mit maximal neun Ziffern.

Wenn Sie einen Datensatz variabler Länge verwenden, müssen Sie die Eigenschaft 'lengthItem' oder die Eigenschaft 'numElementsItem' oder beide angeben. Wenn beide Elemente vorhanden sind, wenn EGL den Datensatz in die Datei schreibt, wird zunächst das Feld 'numElementsItem' verwendet, um die Gesamtlänge des Datensatzes zu berechnen. Anschließend wird diese Länge in die von 'lengthItem' angegebene Variable gestellt, bevor der Datensatz geschrieben wird. Weitere Informationen finden Sie unter Datensätze variabler Länge.

Beispiel

Das folgende Beispiel zeigt den Abschnitt eines Datensatzes variabler Länge mit einer Eigenschaft 'lengthItem', die auf eine Variable außerhalb des Datensatzes zeigt:
  Record SerialRecordPart1 type serialRecord
    {
      fileName = "myFile",
      lengthItem = myOtherField
    }
    10 myField01 BIN(4);   // 2 Byte lang
    10 myField02 NUM(3);   // 3 Byte lang
    10 myField03 CHAR(20); // 20 Byte lang
  end

myOtherField NUM(4);
Wenn Sie einen Datensatz schreiben, muss der Wert des Längenfelds den Feldgrenzen entsprechen, sofern es sich bei dem letzten Feld nicht um ein Zeichenfeld handelt. Beispiel: Ein Datensatz des Typs SerialRecordPart1 kann das Längenfeld myOtherField enthalten, das auf einen der folgenden Werte gesetzt ist:
2
Der geschriebene Datensatz enthält lediglich myField01.
5
Der geschriebene Datensatz enthält myField01 und myField02.
6-25
Der geschriebene Datensatz enthält myField01, myField02 und einen Teil von myField03.

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'lengthItem'
Plattform Problem
DL/I Die Variable 'lengthItem' enthält den Namen desjenigen Felds im DL/I-Segment, das die Länge des gesamten Segments, einschließlich des Felds selbst, enthält. Sie müssen 'lengthItem' angeben, wenn das Segment eine variable Länge aufweist. Das Feld muss den Typ SMALLINT haben sowie dieselbe Länge und dieselbe relative Position (Offset) wie das Längenfeld in dem Segment in der DL/I-Datenbankbeschreibung.

Das Feld, auf das 'lengthItem' zeigt, ist normalerweise das erste Feld in dem Segment. Dies ist jedoch nicht der Fall, wenn ein verknüpftes Segment in einer logischen Datenbank aus einem Segment mit fester Länge, gefolgt von einem Segment variabler Länge erstellt ist.

WebSphere MQ Wenn ein Programm den Datensatz zu einer Nachrichtenwarteschlange hinzufügt, wird die Nachrichtenlänge auf einen Wert gleich dem Wert in der von der Eigenschaft 'lengthItem' angegebenen Variablen gesetzt. Wenn ein Programm die Nachricht aus der Warteschlange liest, wird die Nachrichtenlänge in der von der Eigenschaft 'lengthItem' angegebenen Variablen zurückgegeben. Wenn Sie Variablennamen sowohl für die Eigenschaft 'lengthItem' als auch für die Eigenschaft 'numElementsItem' angeben, wird die Variable 'lengthItem' auf die Länge gesetzt, die aus der Anzahl der Elemente im Datensatz berechnet wurde, bevor eine Nachricht der Warteschlange hinzugefügt wird.

Informationen zu Problemen im Zusammenhang mit weiteren Plattformen und Ressourcenzuordnungen finden Sie im Abschnitt 'Kompatibilität' unter numElementsItem.


Feedback