大型主機字元格式
在 [交易整合器] (TI) Project 中,您可以指定 TI 執行時間環境在將資料傳送至大型主機時所建立的大型主機字元格式。 TI 支援兩種大型主機字元格式:
PIC X (n) COBOL 或 RPG A
PIC G (n) COBOL 或 RPG G
當您在 TI 專案中建立字串參數、欄位或資料行時,會自動選取 PIC X (n) 或 RPG A 資料類型格式。
如有必要,您可以使用 Properties 命令來變更大型主機字元格式。
如果您選取字串的 PIC X 或 RPG A 格式,TI 執行時間環境會將此字串轉換成擴充二進位編碼十進位交換碼 (EBCDIC) 字元字串或混合字元字串。 具體而言,如果將您在 TI 專案中定義的 TI 元件指派給遠端環境, (RE) 與 EBCDIC 字碼頁,TI 執行時間環境會將具有 PIC X 或 RPG A 格式的字串轉換成 EBCDIC 字串。 如果 TI 元件的 RE 在 DBCS) 字碼頁 (識別雙位元組字元集,TI 執行時間環境會將具有 PIC X 格式的字串轉換成混合字串, (RPG) 不支援。
如果您選取字串的 PIC G 或 RPG G 格式,TI 執行時間環境一律會將字串轉換成 DBCS 字串。 因此,任何使用具有 PIC G 或 RPG G 格式之字串的 TI 元件都必須指派給具有 DBCS 字碼頁的 RE。
如果使用字串搭配 PIC G 或 RPG G 格式的 TI 元件指派給具有 EBCDIC 字碼頁的 RE,TI 執行時間環境會在嘗試將字串轉換成 PIC G 或 RPG G 格式時回報轉換錯誤。 TI 執行時間環境會在 Windows 事件記錄檔中放置描述此轉換問題的錯誤訊息,並將錯誤傳回給叫用用戶端應用程式。
下表摘要說明選取字串格式和字碼頁如何控制 TI 執行時間環境所執行的字元轉換類型。
字串格式 | EBCDIC 字碼頁 | DBCS 字碼頁 |
---|---|---|
PIC X 或 RPG A | EBCDIC 字串 | 混合字串 |
PIC G 或 RPG G | TI 執行時間環境報告轉換錯誤。 | DBCS 字串 |
字串維度值
字串維度的意義 (PIC X (n) n) 或 RPG A (n) 的n部分,以及 PIC G (n) 或 RPG G (n) 格式) 是以使用的字元格式為基礎。 您可以在交易整合器 (TI) Project 的 COBOL 定義 屬性頁面上指定字串的維度。
具有 PIC G 或 RPG G 格式之字串的維度值會提供字串大型主機表示中使用的雙位元組字元數。 轉換具有 PIC G 或 RPG G 格式的字串時,不會新增 SO 和 SI 字元組。
具有 PIC X 或 RPG A 格式之字串的維度值會提供其大型主機表示中使用的位元組數目。 可以放入或取自 PIC X 或 RPG A 格式化字串的字元數,會根據 的數目而有所不同:
雙位元組字元集 (DBCS) 字元,每個字元都需要兩個位元組的儲存體。
需要 SO 和 SI 字元組。 每個雙位元組組都必須封裝 DBCS 字元的每個連續資料流程。
使用 TI 的開發人員必須在 TI Project 中指定維度值時,將混合字串的大小變化納入考慮。
使用具有 PIC X 或 RPG A 格式之 EBCDIC 字碼頁轉換的字串位元組數目與字元數目相同,因為字串中沒有 DBCS 字元。
不過,對於使用具有 PIC X 或 RPG A 格式之 DBCS 字碼頁轉換的字串,可以放入指定位元組數目的實際字元數會有所不同。 例如,如果轉換至 UNICODE 或從 UNICODE 轉換不需要使用 DBCS 字元 (,則大型主機字串中不會使用 SO 和 SI 字元) ,則每個字元都會佔用單一位元組。 不過,如果 DBCS 字元確實出現在大型主機字串中,則需要 SO 和 SI 字元組。
匯入精靈如何定義字串
當您使用交易整合器 (TI) Project 的匯入精靈匯入主機定義以建立新的方法和記錄集時,精靈會根據匯入的主機定義來選取大型主機字元格式。 下表顯示精靈如何將不同的 COBOL 宣告對應至字串。
COBOL 類型 | 建立的字串類型 |
---|---|
PIC X (n) 或 RPG A | 大小 為 n 個位元組的字串 |
PIC G (n) 或 RPG G | 大小 為 n 個字元的字串 |