KIN03EXP: SELECT INTO → CURSOR(DECLARE/OPEN/FETCH/CLOSE) pattern; SUB01DAT: COPY ZANDATAC; 基本設計書A: KIN08DBU/KIN09CSV specs updated; 品質管理: coverage stats, keyword docs, test criteria
This commit is contained in:
+73
-68
@@ -208,72 +208,61 @@
|
||||
1000ITTSOR-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO:(1.1) *
|
||||
* サブモジュール名:C1初回FETCH処理 *
|
||||
* 処理概要 : LEAVE_RECORDSをSELECT INTO(初回のみ) *
|
||||
* サブモジュールNO:(1.1) *
|
||||
* サブモジュール名:C1 OPEN + 初回FETCH処理 *
|
||||
* 機能概要 : C1(CURSOR FOR LEAVE_RECORDS)のOPEN+FETCH *
|
||||
*****************************************************************
|
||||
1100C1INITSOR SECTION.
|
||||
*
|
||||
MOVE SPACES TO SQL-APPL-ID.
|
||||
EXEC SQL
|
||||
SELECT APPLICATION_ID, EMP_ID, LEAVE_TYPE,
|
||||
START_DATE, START_TIME,
|
||||
END_DATE, END_TIME
|
||||
FROM LEAVE_RECORDS
|
||||
WHERE STATUS = '1'
|
||||
ORDER BY EMP_ID, START_DATE
|
||||
INTO :SQL-APPL-ID, :SQL-EMP-ID, :SQL-LEAVE-TYPE,
|
||||
:SQL-START-DATE, :SQL-START-TIME,
|
||||
:SQL-END-DATE, :SQL-END-TIME
|
||||
END-EXEC.
|
||||
*** C1 DECLARE
|
||||
EXEC SQL
|
||||
DECLARE C1 CURSOR FOR
|
||||
SELECT APPLICATION_ID, EMP_ID, LEAVE_TYPE,
|
||||
START_DATE, START_TIME,
|
||||
END_DATE, END_TIME
|
||||
FROM LEAVE_RECORDS
|
||||
WHERE STATUS = '1'
|
||||
ORDER BY EMP_ID, START_DATE
|
||||
END-EXEC.
|
||||
*
|
||||
IF SQLCODE = 0
|
||||
ADD 1 TO CUN-R01INN
|
||||
ELSE
|
||||
MOVE '1' TO WRK-R01EOF
|
||||
END-IF.
|
||||
*** C1 OPEN
|
||||
EXEC SQL
|
||||
OPEN C1
|
||||
END-EXEC.
|
||||
*
|
||||
1100C1INITSOR-EXT.
|
||||
*** C1 初回FETCH
|
||||
IF SQLCODE = 0
|
||||
EXEC SQL
|
||||
FETCH C1
|
||||
INTO :SQL-APPL-ID, :SQL-EMP-ID, :SQL-LEAVE-TYPE,
|
||||
:SQL-START-DATE, :SQL-START-TIME,
|
||||
:SQL-END-DATE, :SQL-END-TIME
|
||||
END-EXEC
|
||||
IF SQLCODE = 0
|
||||
ADD 1 TO CUN-R01INN
|
||||
ELSE
|
||||
MOVE '1' TO WRK-R01EOF
|
||||
END-IF
|
||||
ELSE
|
||||
MOVE '1' TO WRK-R01EOF
|
||||
END-IF.
|
||||
*
|
||||
1100C1INITSOR-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO:(1.2) *
|
||||
* サブモジュール名:C1次回FETCH処理 *
|
||||
* 処理概要 : br_fetch_nextで次行を読込(2回目以降) *
|
||||
* サブモジュールNO:(1.2) *
|
||||
* サブモジュール名:C1の FETCH処理 *
|
||||
* 機能概要 : C1のFETCH(2回目以降) *
|
||||
*****************************************************************
|
||||
1100C1FETCHSOR SECTION.
|
||||
*
|
||||
CALL 'br_fetch_next' USING SQLCODE.
|
||||
*
|
||||
IF SQLCODE = 0
|
||||
MOVE SPACES TO SQL-APPL-ID
|
||||
MOVE 0 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-APPL-ID, WS-COL-LEN
|
||||
MOVE 1 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-EMP-ID, WS-COL-LEN
|
||||
MOVE 2 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-LEAVE-TYPE, WS-COL-LEN
|
||||
MOVE 3 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-START-DATE, WS-COL-LEN
|
||||
MOVE 4 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-START-TIME, WS-COL-LEN
|
||||
MOVE 5 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-END-DATE, WS-COL-LEN
|
||||
MOVE 6 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-END-TIME, WS-COL-LEN
|
||||
EXEC SQL
|
||||
FETCH C1
|
||||
INTO :SQL-APPL-ID, :SQL-EMP-ID, :SQL-LEAVE-TYPE,
|
||||
:SQL-START-DATE, :SQL-START-TIME,
|
||||
:SQL-END-DATE, :SQL-END-TIME
|
||||
END-EXEC.
|
||||
IF SQLCODE = 0
|
||||
ADD 1 TO CUN-R01INN
|
||||
ELSE
|
||||
MOVE '1' TO WRK-R01EOF
|
||||
@@ -282,31 +271,38 @@
|
||||
1100C1FETCHSOR-EXT.
|
||||
EXIT.
|
||||
*****************************************************************
|
||||
* サブモジュールNO:(1.3) *
|
||||
* サブモジュール名: 休日カレンダー読込処理 *
|
||||
* 処理概要 : HOLIDAY_CALENDARをWORKING-STORAGEに格納 *
|
||||
* サブモジュールNO:(1.3) *
|
||||
* サブモジュール名: HOLIDAY_CALENDARの読込み *
|
||||
* 機能概要 : HOLIDAY_CALENDARをWORKING-STORAGEに読込 *
|
||||
*****************************************************************
|
||||
1200HDINNSOR SECTION.
|
||||
*
|
||||
*** C2初回FETCH(SELECT INTO)
|
||||
*** C2 DECLARE
|
||||
EXEC SQL
|
||||
DECLARE C2 CURSOR FOR
|
||||
SELECT HOLIDAY_DATE
|
||||
FROM HOLIDAY_CALENDAR
|
||||
ORDER BY HOLIDAY_DATE
|
||||
END-EXEC.
|
||||
*
|
||||
*** C2 OPEN + 初回FETCH
|
||||
EXEC SQL
|
||||
OPEN C2
|
||||
END-EXEC.
|
||||
*
|
||||
EXEC SQL
|
||||
FETCH C2
|
||||
INTO :SQL-HD-DATE
|
||||
END-EXEC.
|
||||
*
|
||||
*** 休日テーブルに全件読込
|
||||
*** HOLIDAY_CALENDARの読込み
|
||||
PERFORM UNTIL SQLCODE NOT = 0
|
||||
ADD 1 TO WRK-HD-COUNT
|
||||
MOVE SQL-HD-DATE TO WRK-HD-DATE(WRK-HD-COUNT)
|
||||
CALL 'br_fetch_next' USING SQLCODE
|
||||
IF SQLCODE = 0
|
||||
MOVE 0 TO WS-COL-IDX
|
||||
MOVE 256 TO WS-COL-LEN
|
||||
CALL 'br_get_col' USING
|
||||
WS-COL-IDX, SQL-HD-DATE, WS-COL-LEN
|
||||
END-IF
|
||||
EXEC SQL
|
||||
FETCH C2
|
||||
INTO :SQL-HD-DATE
|
||||
END-EXEC
|
||||
END-PERFORM.
|
||||
*
|
||||
1200HDINNSOR-EXT.
|
||||
@@ -461,6 +457,15 @@
|
||||
*****************************************************************
|
||||
3000STPSOR SECTION.
|
||||
*
|
||||
*** CURSOR CLOSE
|
||||
EXEC SQL
|
||||
CLOSE C1
|
||||
END-EXEC.
|
||||
*
|
||||
EXEC SQL
|
||||
CLOSE C2
|
||||
END-EXEC.
|
||||
*
|
||||
*** 出力ファイルCLOSE
|
||||
CLOSE W01OUTFIL.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user