Mainframezeichenformate
In Transaction Integrator (TI) Project können Sie das Mainframezeichenformat angeben, das die TI-Laufzeitumgebung beim Senden von Daten an den Mainframe erstellt. Es gibt zwei Mainframezeichenformate, die von TI unterstützt werden:
PIC X(n) COBOL oder RPG A
PIC G(n) COBOL oder RPG G
Wenn Sie Zeichenfolgenparameter, Felder oder Spalten in TI Project erstellen, wird automatisch das Datentypformat PIC X(n) oder RPG A ausgewählt.
Bei Bedarf können Sie den Befehl Eigenschaften verwenden, um das Mainframezeichenformat zu ändern.
Wenn Sie das PIC X- oder RPG A-Format für eine Zeichenfolge auswählen, konvertiert die TI-Laufzeitumgebung diese Zeichenfolge entweder in eine EBCDIC-Zeichenfolge (Extended Binary Coded Decimal Interchange Code) oder eine gemischte Zeichenfolge. Insbesondere wenn die TI-Komponente, die Sie in TI Project definieren, einer Remoteumgebung (RE) mit einer EBCDIC-Codepage zugewiesen ist, konvertiert die TI-Laufzeitumgebung eine Zeichenfolge mit einem PIC X- oder RPG A-Format in eine EBCDIC-Zeichenfolge. Wenn die RE der TI-Komponente eine DBCS-Codepage (Double-Byte Character Set) identifiziert, konvertiert die TI-Laufzeitumgebung eine Zeichenfolge mit einem PIC X-Format als gemischte Zeichenfolge (für RPG nicht unterstützt).
Wenn Sie das PIC G- oder RPG G-Format für eine Zeichenfolge auswählen, konvertiert die TI-Laufzeitumgebung die Zeichenfolge immer in eine DBCS-Zeichenfolge. Daher muss jede TI-Komponente, die eine Zeichenfolge mit einem PIC G- oder RPG G-Format verwendet, einer RE zugewiesen werden, die über eine DBCS-Codepage verfügt.
Wenn eine TI-Komponente, die eine Zeichenfolge mit einem PIC G- oder RPG G-Format verwendet, einer RE zugewiesen wird, die über eine EBCDIC-Codepage verfügt, meldet die TI-Laufzeitumgebung einen Konvertierungsfehler, wenn sie versucht, die Zeichenfolge in das oder aus dem PIC G- oder RPG G-Format zu konvertieren. Die TI-Laufzeitumgebung platziert eine Fehlermeldung, die dieses Konvertierungsproblem im Windows-Ereignisprotokoll beschreibt, und gibt einen Fehler an die aufrufende Clientanwendung zurück.
In der folgenden Tabelle wird zusammengefasst, wie die Auswahl des Zeichenfolgenformats und der Codepage den Typ der Zeichenkonvertierung steuert, die von der TI-Laufzeitumgebung ausgeführt wird.
Zeichenfolgenformat | EBCDIC-Codepage | DBCS-Codepage |
---|---|---|
PIC X oder RPG A | EBCDIC-Zeichenfolge | Gemischte Zeichenfolge |
PIC G oder RPG G | Die TI-Laufzeitumgebung meldet Konvertierungsfehler. | DBCS-Zeichenfolge |
Zeichenfolgendimensionswerte
Die Bedeutung der Dimension einer Zeichenfolge (der n Teil der PIC X(n) oder RPG A(n) und der n Teil des PIC G(n)- oder RPG G(n)-Formats) basiert auf dem verwendeten Zeichenformat. Sie geben die Dimension einer Zeichenfolge auf der Eigenschaftenseite cobol definition in Transaction Integrator (TI) Project an.
Der Dimensionswert für eine Zeichenfolge mit einem PIC G- oder RPG G-Format gibt die Anzahl von Doppelbytezeichen an, die in der Mainframedarstellung der Zeichenfolge verwendet werden. Es wird kein SO- und SI-Zeichenpaar hinzugefügt, wenn eine Zeichenfolge mit einem PIC G- oder RPG G-Format konvertiert wird.
Der Dimensionswert für eine Zeichenfolge mit einem PIC X- oder RPG A-Format gibt die Anzahl der Bytes an, die in ihrer Mainframedarstellung verwendet werden. Die Anzahl der Zeichen, die in eine PIC X- oder RPG A-formatierte Zeichenfolge eingefügt oder daraus genommen werden können, hängt von der Anzahl von ab:
Double-Byte-Zeichensatzzeichen (DBCS), für die jeweils zwei Bytes Speicher erforderlich sind.
SO- und SI-Zeichenpaare erforderlich. Jedes Zwei-Byte-Paar muss jeden zusammenhängenden Datenstrom von DBCS-Zeichen kapseln.
Entwickler, die TI verwenden, müssen diese Variabilität in der Größe einer gemischten Zeichenfolge berücksichtigen, wenn sie Dimensionswerte im TI-Projekt angeben.
Die Anzahl der Bytes für eine Zeichenfolge, die mithilfe einer EBCDIC-Codepage mit einem PIC X- oder RPG A-Format konvertiert wird, ist identisch mit der Anzahl der Zeichen, da keine DBCS-Zeichen in der Zeichenfolge enthalten sind.
Bei einer Zeichenfolge, die mit einer DBCS-Codepage mit einem PIC X- oder RPG A-Format konvertiert wurde, variiert die tatsächliche Anzahl von Zeichen, die in einer bestimmten Anzahl von Bytes platziert werden können. Wenn für die Konvertierung in oder aus UNICODE beispielsweise keine DBCS-Zeichen verwendet werden müssen (d. h. in der Mainframezeichenfolge wird kein SO- und SI-Zeichen verwendet), nimmt jedes Zeichen ein einzelnes Byte ein. Wenn jedoch DBCS-Zeichen in der Mainframezeichenfolge angezeigt werden, werden die SO- und SI-Zeichenpaare benötigt.
Definieren von Zeichenfolgen durch den Import-Assistenten
Wenn Sie den Import-Assistenten von Transaction Integrator -Projekt (TI) verwenden, um eine Hostdefinition zu importieren, um neue Methoden und Recordsets zu erstellen, wählt der Assistent das Mainframezeichenformat basierend auf der importierten Hostdefinition aus. Die folgende Tabelle zeigt, wie der Assistent verschiedene COBOL-Deklarationen einer Zeichenfolge zuordnet.
COBOL-Typ | Typ der erstellten Zeichenfolge |
---|---|
PIC X(n) oder RPG A | Zeichenfolge der Größe n Bytes |
PIC G(n) oder RPG G | Zeichenfolge der Größe n Zeichen |