DataTable-Eigenschaften
Sie definieren jeden DataTable-Abschnitt in einer eigenen EGL-Quellendatei, in der Sie jede der folgenden Eigenschaften angeben können. Nur die Eigenschaft contents ist erforderlich.
- alias
- Eine Zeichenfolge (in Anführungszeichen), die in die Namen generierter Ausgaben aufgenommen wird. Wenn Sie keinen Aliasnamen angeben, wird stattdessen der DataTable-Name verwendet.
- contents
- Ein Wertebereich für die DataTable-Zellen. Jede Zeile in der Feldgruppe stellt eine Tabellenzeile dar. Jede Zeile wird so formatiert, wie dies in den Spaltendefinitionen angegeben ist. Jeder Wert ist einer der folgenden Literaltypen:
- Ein numerisches Literal
- Ein Zeichenfolgeliteral oder eine Verkettung von Zeichenfolgeliteralen
- Ein boolesches Literal (YES oder NO, TRUE oder FALSE)
- resident
- Ein boolescher Wert, der angibt, ob die Datentabelle (DataTable) im Speicher verbleibt,
nachdem alle Programme beendet sind, die auf die Datentabelle zugegriffen haben.
Gültige Werte sind YES und NO (Standard). Wenn Sie die Eigenschaft resident auf
YES einstellen, wird die Datentabelle (DataTable) gemeinsam genutzt, unabhängig von dem Wert der Eigenschaft shared.
Wenn eine Datentabelle als 'resident' definiert wird, hat dies folgende Vorteile:
- Beibehaltung aller Werte, die von zuvor ausgeführten Programmen für sie geschrieben wurden.
- Verfügbarkeit für den unmittelbaren Zugriff ohne weitere Ladeprozesse.
- Wenn resident auf NO eingestellt wird, wirken sich folgende Faktoren
auf das Entladen der Tabelle aus:
- Wenn die Verarbeitung nicht im VAGen-Kompatibilitätsmodus erfolgt, wird die Datentabelle (DataTable) entladen, wenn das Programm beendet wird.
- enn die Verarbeitung im VAGen-Kompatibilitätsmodus erfolgt, steuert die Eigenschaft deleteAfterUse der Anweisunguse für die Datentabelle (DataTable) das Entladen der Datentabelle. Siehe deleteAfterUse.
- Das Entladen der Datentabelle (DataTable) wird auch durch das Zielsystem beeinflusst und ist abhängig davon,
ob das Programm resident ist; siehe "Kompatibilität" in diesem Abschnitt.Anmerkung: Eine Datentabelle (DataTable) wird in den Speicher geladen, wenn zum ersten Mal ein Programm auf sie zugreift, und nicht dann, wenn die EGL-Laufzeitumgebung die Anweisung use verarbeitet.
- shared
- Ein boolescher Wert, der angibt, ob dieselbe Instanz einer Datentabelle (DataTable) von jedem Programm in der Ausführungseinheit verwendet wird. Wenn shared auf YES eingestellt ist, verwenden alle Programme in der Ausführungseinheit dieselbe Kopie der Datentabelle gemeinsam. Wenn shared auf NO eingestellt ist (Standardeinstellung), verfügt jedes Programm in der Ausführungseinheit über eine eigene Kopie der Datentabelle.
Kompatibilität
| Plattform | Problem |
|---|---|
| COBOL-Generierung | Die maximale Länge für den generierten Namen ist sieben Zeichen. |
| CICS | Wenn Sie die Eigenschaft resident für eine Datentabelle (DataTable) auf YES einstellen, dürfen Sie das Schlüsselwort RESIDENT in der CICS RDO PROGRAM-Definition für das DataTable-Programm nicht auf YES einstellen. Eine residente Datentabelle (DataTable)
bleibt geladen, bis eine der folgenden Situationen eintritt:
Die Eigenschaft shared gibt an, ob dieselbe Instanz einer Datentabelle (DataTable) von allen Programmen in der CICS-Region und von allen Programmen in einer bestimmten Ausführungseinheit verwendet wird. Wenn Sie eine gemeinsam genutzte Tabelle ändern, sind die Änderungen für alle Benutzer der Tabelle in derselben CICS-Region wirksam, bis die Tabelle erneut geladen wird. Wenn Ihr Programm eine gemeinsam genutzte Tabelle aktualisiert, nehmen Sie die gesamte Aktualisierung zwischen E/A-Anweisungen oder zwischen Programm-, Bibliotheks- oder Serviceaufrufen vor. Rufen Sie erst nach der E/A-Anweisung oder dem Aufruf einen Wert aus der Datentabelle (DataTable) ab. Ändern Sie die Datentabelle dann auf der Basis des Werts, den Sie nach der E/A-Anweisung oder der call-Anweisung abgerufen haben. Eine Transaktion eines anderen Ein-/Ausgabe hat möglicherweise die Steuerung der E/A- oder call-Anweisung übernommen und dieselbe Datentabelle genau während der Verarbeitung Ihrer Aktualisierungsoperation geändert. Wenn eine Synchronisation für eine E/A- oder call-Anweisung erforderlich ist, verwenden Sie hierzu ein externes Serialisierungsverfahren. |
IMS BMP |
Eine residente Datentabelle (DataTable)
bleibt geladen, bis eine der folgenden Situationen eintritt:
Wenn die Eigenschaft resident auf NO eingestellt ist, wird die Eigenschaft shared ignoriert. Jeder Jobschritt hat eine separate Kopie der Tabelle. |
| IMS/VS | Eine residente Datentabelle (DataTable)
bleibt geladen, bis eine der folgenden Situationen eintritt:
Das Ändern gemeinsam genutzter Datentabellen (DataTables) wird nicht unterstützt. |
| iSeries COBOL | Eine residente Datentabelle (DataTable)
bleibt geladen, bis eine der folgenden Situationen eintritt:
|
| Java™-Generierung | Eine Datentabelle (DataTable), die resident ist, bleibt geladen, bis die Ausführungseinheit beendet wird. Eine nicht residente Datentabelle wird aber entladen, wenn das Programm, das sie verwendet, beendet wird. |
| JavaScript-Generierung | DataTable wird nicht unterstützt. |