アプリケーションの例
本付録では、作成したスキーマ・ファイルをベースにして、NDBを使用するCOBOLアプリケーションの例について説明します。
アプリケーションを使用する前に、ターゲットNDBのレコードとセット情報が含まれたサブスキーマを作成します。
以下は、サブスキーマの例です。
************************
* SUBSCHEMA *
************************
SUBSCHEMA NAME IS SCHSUB
; SCHEMA NAME IS SCHOOL.
************************
* RECORD *
************************
01 CLASS1.
01 SUBJECT.
01 TEACHER.
01 STUDENT.
************************
* SET *
************************
SET CLASUB.
SET SUBTEA.
SET TEASTU.
END.
以下は、サブスキーマの作成方法です。
$ ndbadlgen store -p <sub-schema-file-name>
アプリケーションを実行する前に、プログラムの実行環境について記述したPEDファイルを作成して登録します。各アプリケーションのためのPEDファイルを登録するときは、jxdddmsツールを使用します。
*******************
* PED ENTRY *
*******************
PED NAME IS CLARNGCR
; SWAP POINT IS NOTHING.
*******************
* AP ENTRY *
*******************
AP NAME IS CLACOB
; TRANSACTION-POINT IS SYSTEM .
*******************
* DATABASE ENTRY *
*******************
DATABASE NAME IS SCHSUB
; ACCESS MODE IS
MODIFY FOR SCHOOL
; PAGE BUFFER IS 10
; INDEX BUFFER IS 10
; EXTENDED INDEX BUFFER IS 10
; INCLUSION SCHEMA IS SCHOOL
; EXCLUSIVE UNIT IS RANGE.
*
END.
以下は、CLARNG RANGEにデータを作成するCOBOLアプリケーションの例です。
例では、NDBデータベースのCLASS1レコードとSUBJECTレコードに値を保存しています。NDBを使用するには、まず、READYコマンドとサブスキーマ名を指定してデータ操作を準備し、STOREコマンドを使用してデータを保存します。NDBの使用が終わったら、FINISHコマンドを使用してNDB処理を終了します。
IDENTIFICATION DIVISION.
PROGRAM-ID. 'CLACOB'.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER .
FACOM .
OBJECT-COMPUTER .
FACOM .
SUBSCHEMA-NAME.
'SCHSUB'.
DATA DIVISION.
*----------------------------------------------------------------*
WORKING-STORAGE SECTION.
*----------------------------------------------------------------*
01 WK-EOF-FLG PIC X(01) VALUE SPACE.
*----------------------------------------------------------------*
PROCEDURE DIVISION.
*----------------------------------------------------------------*
* MAIN CONTROL *
*----------------------------------------------------------------*
MAIN-CONTROL-PROC SECTION.
READY.
MOVE "01" TO CLA-AREA OF CLASS1.
MOVE "EXERCISE" TO CLA-NAME OF CLASS1.
MOVE 01012345678 TO CLA-TEL OF CLASS1.
STORE 'CLASS1'.
DISPLAY 'CLA-AREA :' CLA-AREA OF CLASS1.
DISPLAY 'CLA-NAME :' CLA-NAME OF CLASS1.
DISPLAY 'CLA-TEL :' CLA-TEL OF CLASS1.
DISPLAY 'STORE DBECB :' DBECB OF FCOM.
MOVE "YOGA" TO SUB-NAME OF SUBJECT.
MOVE 01012345678 TO SUB-TEL OF SUBJECT.
STORE 'SUBJECT'.
DISPLAY 'CLA-AREA :' CLA-AREA OF CLASS1.
DISPLAY 'CLA-NAME :' CLA-NAME OF CLASS1.
DISPLAY 'CLA-TEL :' CLA-TEL OF CLASS1.
DISPLAY 'STORE DBECB :' DBECB OF FCOM.
FINISH.
MAIN-CONTROL-EXIT.
DISPLAY '*** CLARNGCOB END ***'.
以下は、TEARNG RANGEのデータを作成するアプリケーションで使用するPEDファイルの例です。
*******************
* PED ENTRY *
*******************
PED NAME IS TEARNGCR
; SWAP POINT IS NOTHING.
*******************
* AP ENTRY *
*******************
AP NAME IS TEACOB
; TRANSACTION-POINT IS SYSTEM .
*******************
* DATABASE ENTRY *
*******************
DATABASE NAME IS SCHSUB
; ACCESS MODE IS
UPDATE FOR SCHOOL
; PAGE BUFFER IS 10
; INDEX BUFFER IS 10
; EXTENDED INDEX BUFFER IS 10
; INCLUSION SCHEMA IS SCHOOL
; EXCLUSIVE UNIT IS RANGE.
*
END.
以下は、TEARNG RANGEのデータを作成するCOBOLアプリケーションの例です。
この例では、INPUTファイルからデータを読み込んでNDBのTEACHERレコードに保存し、PGNOとKEYDATAで構成されたKPDファイルを作成します。
IDENTIFICATION DIVISION.
PROGRAM-ID. 'TEACOB'.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SUBSCHEMA-NAME. 'SCHSUB'.
SOURCE-COMPUTER .
FACOM .
OBJECT-COMPUTER .
FACOM .
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO SSYSIN.
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-DATA.
02 IN-TEANAME PIC X(20).
02 IN-TEAED PIC X(2).
02 IN-TEABD PIC 9(8).
02 IN-TEANO PIC 9(8).
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
OPEN INPUT IN-FILE.
MAIN-CONTROL-PROC SECTION.
READY 'SCHSUB'.
READ IN-FILE.
MOVE IN-DATA TO TEACHER.
STORE 'TEACHER'
FINISH.
CLOSE IN-FILE
以下は、STURNG RANGEのデータを作成するアプリケーションで使用するPEDファイルの例です。
*******************
* PED ENTRY *
*******************
PED NAME IS STURNGCR
; SWAP POINT IS NOTHING.
*******************
* AP ENTRY *
*******************
AP NAME IS STUCOB
; TRANSACTION-POINT IS SYSTEM .
*******************
* DATABASE ENTRY *
*******************
DATABASE NAME IS SCHSUB
; ACCESS MODE IS
UPDATE FOR SCHOOL
; PAGE BUFFER IS 10
; INDEX BUFFER IS 10
; EXTENDED INDEX BUFFER IS 10
; INCLUSION SCHEMA IS SCHOOL
; EXCLUSIVE UNIT IS RANGE.
*
END.
以下は、STURNG RANGEのデータを作成するCOBOLアプリケーションの例です。
例では、INPUTファイルからデータを読み込み、IN-IDが「T」の場合はTEACHERレコードで検索し、「T」でない場合は、NDBのSTUDENTレコードに保存しています。
IDENTIFICATION DIVISION.
PROGRAM-ID. 'STUCOB'.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SUBSCHEMA-NAME. 'SCHSUB'.
SOURCE-COMPUTER .
FACOM .
OBJECT-COMPUTER .
FACOM .
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO SSYSIN.
DATA DIVISION.
FILE SECTION.
FD IN-FILE.
01 IN-DATA.
02 IN-ID PIC X(1).
02 IN-TEACHER.
03 IN-TEA-NAME PIC X(20).
03 IN-TEA-ED PIC X(2).
02 IN-STU REDEFINES IN-TEACHER.
03 IN-STU-NAME PIC X(20).
03 IN-STU-BD PIC X(2).
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
OPEN INPUT IN-FILE.
MAIN-CONTROL-PROC SECTION.
READY 'SCHSUB'.
READ-DATA.
READ IN-FILE AT END GO TO END-APP.
IF IN-ID NOT = 'T' GO TO ST-STU.
GT-TEA.
DISPLAY 'IN-TEA-NAME :' IN-TEA-NAME.
DISPLAY 'IN-TEA-ED :' IN-TEA-ED.
MOVE IN-TEA-NAME TO TEA-NAME OF TEACHER.
MOVE IN-TEA-ED TO TEA-ED OF TEACHER.
FIND ANY 'TEACHER'.
GO TO READ-DATA.
ST-STU.
MOVE IN-STU TO STUDENT.
STORE 'STUDENT'.
GO TO READ-DATA.
END-APP.
FINISH.
CLOSE IN-FILE.
STOP RUN.