- CICS 教程
- CICS - 首頁
- CICS - 概述
- CICS - 環境
- CICS - 基本術語
- CICS - 核心
- CICS - 事務
- CICS - COBOL 基礎
- CICS - BMS
- CICS - MAP
- CICS - 介面塊
- CICS - 偽程式設計
- CICS - 輔助鍵
- CICS - 檔案處理
- CICS - 錯誤處理
- CICS - 控制操作
- CICS - 臨時儲存
- CICS - 互連通訊
- CICS - 狀態碼
- CICS - 面試問題
- CICS 有用資源
- CICS - 快速指南
- CICS - 有用資源
- CICS - 討論
CICS - 讀取
READ 命令使用主鍵從檔案讀取資料。以下是 READ 命令的語法:
語法
EXEC CICS READ
FILE('name')
INTO(data-area)
RIDFLD(data-area)
LENGTH(data-value)
KEYLENGTH(data-value)
END-EXEC.
下表列出了 READ 命令中使用的引數:
| 序號 | 引數及描述 |
|---|---|
| 1 |
FILE 檔名是要讀取的檔案的名稱。這是標識檔案 FCT 條目的 CICS 符號檔名。檔名最多可以包含 8 個字元,如果它們是文字,則應括在引號中。 |
| 2 |
INTO 資料區是要將記錄讀取到的變數,通常是工作儲存中的結構。INTO 是 READ 命令使用的必要條件。 |
| 3 | RIDFLD 它包含要讀取的記錄鍵的資料區的名稱。 |
| 4 | LENGTH 它指定可以讀取到指定資料區的最大字元數。它必須是半字二進位制值 (PIC S9(4) COMP)。READ 命令完成後,CICS 會將我們指定的最大值替換為記錄的真實長度。出於這個原因,我們必須將 LENGTH 指定為資料區的名稱而不是文字,並且如果我們在程式中多次使用 LENGTH,則必須重新初始化此資料區。較長的記錄將引發錯誤條件。 |
| 5 | KEYLENGTH 它指定鍵的長度。 |
示例
以下示例演示瞭如何從 'FL001' 檔案讀取記錄,其中 Student-id 是主鍵:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STD-REC-LEN PIC S9(4) COMP.
01 WS-STD-KEY-LEN PIC S9(4) COMP.
01 WS-STD-REC-KEY PIC 9(3).
01 WS-STD-REC PIC X(70).
PROCEDURE DIVISION.
MOVE +70 TO WS-STD-REC-LEN.
MOVE ‘100’ TO WS-STD-REC-KEY.
MOVE 3 TO WS-STD-KEY-LEN.
EXEC CICS READ
FILE ('FL001')
INTO (WS-STD-REC)
LENGTH (WS-STD-REC-LEN)
RIDFLD (WS-STD-REC-KEY)
KEYLENGTH (WS-STD-KEY-LEN)
END-EXEC.
讀取命令選項
以下選項可與 READ 命令一起使用:
GENERIC - 當我們不知道完整的鍵值時使用。例如,我們想要一個主鍵以“10”開頭,其餘鍵可以是任何內容的記錄。儘管鍵長度為 3 個字元,但我們只提到了 2 個。重要的是要提到鍵長度,它給出需要進行匹配的長度。滿足條件的第一個記錄將被選中。
UPDATE - 它指定我們打算在當前事務中更新記錄。指定 UPDATE 會使您的事務對請求的記錄擁有獨佔控制權。當我們想要重寫記錄時,應該使用它。
EQUAL - 它指定我們只想要鍵與 RIDFLD 指定的鍵完全匹配的記錄。
GTEQ - 它指定我們想要鍵大於或等於指定鍵的第一個記錄。
EXEC CICS READ
FILE('name')
INTO(data-area)
RIDFLD(data-area)
LENGTH(data-value)
KEYLENGTH(data-value)
GENERIC
UPDATE
EQUAL
GTEQ
END-EXEC.
讀取命令異常
下表顯示了 READ 語句期間出現的異常列表:
| 序號 | 異常及描述 |
|---|---|
| 1 | NOTOPEN 檔案未開啟。 |
| 2 | NOTFND 正在搜尋的記錄在資料集中不存在。 |
| 3 | FILENOTFOUND FCT 中未建立檔案條目。 |
| 4 | LENGERR 命令中指定的長度與記錄的實際長度不匹配。 |
| 5 | NOTAUTH 如果使用者沒有足夠的許可權使用該檔案。 |
| 6 | DUPKEY 如果多個記錄滿足備用鍵上的條件。 |