アプリケーションの例
本付録では、作成したスキーマ・ファイルをベースにして、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.