Mit Format 1 der Anweisung @CODENAME kann der vom EDT für eine Arbeitsdatei bzw. eine Zeichenfolgevariable verwendete Zeichensatz eingestellt werden. Die bei @CODENAME getroffene Festlegung hat Vorrang vor der impliziten Wahl eines Zeichensatzes durch den EDT, z.B. aufgrund des Eintrags im Dateikatalog.
Operation | Operanden | F-Modus, L-Modus |
@CODENAME | name [, { LOCAL | GLOBAL | $0...$22 | #S0...#S20}] [,FORCE={YES | NO} ] |
name | Name des einzustellenden Zeichensatzes. Der Zeichensatzname muss in XHCS bekannt sein, andernfalls wird die Anweisung mit der Meldung |
LOCAL | Es wird der angegebene Zeichensatz für die gerade aktuelle Arbeitsdatei eingestellt. Falls die Arbeitsdatei nicht leer und nicht der Operand |
GLOBAL | Es wird der angegebene Zeichensatz global für alle Arbeitsdateien des EDT eingestellt. Dabei werden, falls nicht der Operand Der Operand wird hauptsächlich verwendet, wenn der EDT über die alte Unterprogrammschnittstelle (V16-Format) als Unterprogramm aufgerufen wurde. Wenn der EDT erkennt, dass für alle Arbeitsdateien der gleiche Zeichensatz eingestellt ist, wird dieser Zeichensatz an der alten Unterprogrammschnittstelle im globalen Kontrollblock Das Verhalten an der alten Unterprogrammschnittstelle, falls kein globaler Zeichensatz eingestellt ist, sowie weitere Details zur Verwendung von Zeichensätzen an der Unterprogrammschnittstelle entnehme man dem Handbuch Unterprogramm-Schnittstellen [1]. |
$0..$22 | Es wird der angegebene Zeichensatz für die angegebene Arbeitsdatei eingestellt. Falls die Arbeitsdatei nicht leer und nicht der Operand |
#S0..#S20 | Es wird der angegebene Zeichensatz für die angegebene Zeichenfolgevariable eingestellt. Falls nicht der Operand |
FORCE=NO | Die Daten der angegebenen Arbeitsdatei bzw. Zeichenfolgevariablen werden in den angegebenen Zeichensatz umcodiert. |
YES | Die Angabe von |
Wird die Arbeitsdatei umcodiert und enthält sie Zeichen, die im Ziel-Zeichensatz nicht darstellbar sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls wird die @CODENAME-Anweisung abgewiesen und die Fehlermeldung EDT5453
ausgegeben. Bei Angabe von GLOBAL werden in diesem Fall bereits erfolgreich umcodierte Arbeitsdateien nicht zurück gewandelt.
Wenn einer Arbeitsdatei oder einer Zeichenfolgevariablen mit @CODENAME ein Zeichensatz zugewiesen wurde, gilt diese Zuweisung bis sie explizit durch eine erneute @CODENAME-Anweisung geändert wurde oder bis die Arbeitsdatei (z.B. mit @DELETE, Format 2) bzw. die Zeichenfolgevariable vollständig gelöscht wurde. Das bedeutet, dass alle Daten, die in die Arbeitsdatei bzw. Zeichenfolgevariable kopiert oder eingelesen werden, in diesen Zeichensatz umcodiert werden (siehe Abschnitt „Zeichensätze in Arbeitsdateien“).
Wenn in Arbeitsdatei 0
eine ISAM-Datei mit @OPEN (Format 2) real geöffnet ist, wird jede @CODENAME-Anweisung, die sich explizit oder implizit für diese Arbeitsdatei auswirkt, mit der Meldung EDT5452
abgewiesen.
Für eine geöffnete existierende Datei, die im Katalog den Zeichensatz *NONE
eingetragen hat, bewirkt ein Aufruf der @CODENAME-Anweisung, dass beim Zurückschreiben durch @CLOSE oder @WRITE immer der beim Schreiben verwendete Zeichensatz explizit im Katalog eingetragen wird.