COBOL2002 ユーザーズガイド
メインフレームで構造型データベースXDM/SD(Extensible Data Manager/Structured Database)を操作するプログラムをPC上でコンパイル,実行できます。このプログラムのコンパイル,実行,テストの方法について説明します。
プログラムのコンパイルまでの手順を次に示します。
手続き部に記述したFIND文,FETCH文などのデータベース操作文は,"CALL 'CBLXDMSD' USING 引数 ……"と内部的に展開されます。展開されたCALL文で呼び出されるプログラムでシミュレーションをする場合は,'CBLXDMSD'という名称の関数を作成し,コンパイル,リンクして実行可能ファイルを生成しておきます。この結果,手続き部のデータベース操作文は,'CBLXDMSD'で作成した関数を呼び出せます。
なお,'CBLXDMSD'という名称の関数を,コンパイル,リンクして実行可能ファイルを生成しないときは,コンパイラが提供する,構造型データベース(XDM/SD)操作シミュレーション機能の実行時ライブラリ用ダミールーチンCBLXDMSDが実行されます。
CALL文に展開されたデータベース操作文の引数によって,利用者はXDM/SDプログラムをテストできます。内部的に展開されるCALL文の引数の形式を次に示します。
CALL 'CBLXDMSD' USING インタフェースエリア DML情報エリア 固有情報エリア (その他の引数) …
データベース操作文で内部的に展開されるCALL文を次に示します。
表25-1 データベース操作文で内部的に展開されるCALL文
データベース操作文 | 内部的に展開されるCALL文と設定される引数 |
---|---|
データベース条件文 | CALL 'CBLXDMSD' USING インタフェースエリア ,DML情報エリア ,固有情報エリア |
CONNECT文 DISCONNECT文 ERASE文 NULLIFY文 RECONNECT文 |
CALL 'CBLXDMSD' USING インタフェースエリア ,DML情報エリア ,固有情報エリア |
FETCH文※1 FIND文 GET文※1 MODIFY文 STORE文 |
CALL 'CBLXDMSD' USING インタフェースエリア ,DML情報エリア ,固有情報エリア ,データ受け渡しエリア※2 〔,付加機能用情報エリア〕※3 |
FETCH文※4 | CALL 'CBLXDMSD' USING インタフェースエリア ,DML情報エリア ,固有情報エリア ,データ受け渡しエリア※5 |
GET文※4 | CALL 'CBLXDMSD' USING インタフェースエリア ,DML情報エリア ,固有情報エリア ,データ受け渡しエリア※2 ,データ受け渡しエリア※5 |
データベース操作文で内部的に展開されるCALL文の引数を「表25-2 データベース操作文で内部的に展開されるCALL文の引数」に示します。また,各項目の詳細を次の表に示します。
表25-2 データベース操作文で内部的に展開されるCALL文の引数
引数の項目 | 設定内容 |
---|---|
インタフェースエリア | 01 SD-IFA. 02 FILLER PIC X(4). 02 SD-IFA-01 PIC X(5). ………… 実行結果を表す状態コード 02 SD-IFA-02 PIC X(1). ………… データベース条件の実行結果 02 SD-IFA-03 PIC X(30). ………… 検索したレコードビュー名 02 FILLER PIC X(30). 02 SD-IFA-04 PIC X(2). ………… 使用しない 02 SD-IFA-05 PIC X(2). ………… 使用しない 02 FILLER PIC X(26). 02 SD-IFA-06 PIC X(20). ………… 使用しない 02 FILLER PIC X(12). 02 SD-IFA-07 PIC S9(4) COMP. … カーソルグループ番号 02 SD-IFA-08 PIC X(4). ………… サブ状態コード 02 SD-IFA-09 PIC S9(4) COMP. … レコードビュー長 02 FILLER PIC X(20). 02 SD-IFA-10 PIC X(30). ………… データベース操作文種別 02 FILLER PIC X(66). 02 SD-IFA-11 PIC X(30). ………… サブスキーマ名 02 SD-IFA-12 PIC X(30). ………… スキーマ名 02 FILLER PIC X(196). |
DML情報エリア | 01 SD-DML. 02 SD-DML-01 PIC S9(4) COMP. … DML情報エリア長 02 FILLER PIC X(2). 02 SD-DML-02 PIC X(2). ………… DML区分 02 SD-DML-03 PIC X(2). ………… 要求種別 02 SD-DML-04 PIC X(2). ………… 一括検索範囲指定 02 SD-DML-05 PIC X(2). ………… 位置指示子指定 02 SD-DML-06 PIC X(30). ………… ビュー名 02 FILLER PIC X(2). 02 SD-DML-07 PIC X(30). ………… インデクス名/ 親子集合ビュー名 02 FILLER PIC X(2). 02 SD-DML-08 PIC X(2). ………… 探索方向 02 SD-DML-09 PIC X(2). ………… 位置決め目的 02 SD-DML-10 PIC S9(9) COMP. … 探索方向の整数値 02 SD-DML-11 PIC X(30). ………… パス名 02 FILLER PIC X(14). |
固有情報エリア (手続き文の各指定情報) |
01 SD-TYP. 02 SD-TYP-01 PIC X(2). ………… データ名指定情報 02 FILLER PIC X(6). 02 SD-TYP-02 PIC X(2). ………… 条件種別 02 FILLER PIC X(2). 02 SD-TYP-03 PIC X(2). ………… 左辺指定子 02 SD-TYP-04 PIC X(30). ………… 左辺指定子ビュー名 02 SD-TYP-05 PIC X(2). ………… 右辺指定子 02 SD-TYP-06 PIC X(30). ………… 右辺指定子ビュー名 02 SD-TYP-07 PIC X(2). ………… 検索条件の比較演算子 02 SD-TYP-08 PIC X(30). ………… 検索条件の構成要素 ビュー名 02 FILLER PIC X(32). 02 SD-TYP-09 PIC X(1). ………… RETAINING種別 02 FILLER PIC X(1). 02 SD-TYP-10 PIC S9(4) COMP. … 親子集合ビュー数 02 FILLER OCCURS 2000 DEPENDING ON SD-TYP-10. 03 SD-TYP-11 PIC X(30). ……… 親子集合ビュー名 03 FILLER PIC X(2). |
データ受け渡しエリアおよび付加機能用情報エリア | データ名 |
領域名 | CALL文 実行前 |
シミュ レータ |
CALL文 実行後 |
内容 |
---|---|---|---|---|
SD-IFA-01 | − | 設定 | 参照 | 実行結果を表す。 STATUS句で指定したデータ名の領域に転記される。 |
SD-IFA-02 | − | 設定 | 参照 | データベース条件の結果を表し,データベース条件の判定に使用する。 '1':判定結果は真 '0':判定結果は偽 |
SD-IFA-03 | − | 設定 | 参照 | 検索したレコードビュー名を表す。 RECORD NAME句に指定したデータ名の領域に転記される。RECORD NAME句の指定がない場合は転記されない。 |
SD-IFA-04 | − | − | − | 使用しない。 |
SD-IFA-05 | − | − | − | 使用しない。 |
SD-IFA-06 | − | − | − | 使用しない。 |
SD-IFA-07 | 設定 | 参照 | − | カーソルグループ番号を表す。 CURSOR NUMBER句に指定したデータ名の領域から転記される。 CURSOR NUMBER句の指定がない場合は0が転記される。 |
SD-IFA-08 | − | 設定 | 参照 | サブ状態コードを表す。 DETAIL CODE句で指定したデータ名の領域に転記される。DETAIL CODE句の指定がない場合は転記されない。 |
SD-IFA-09 | − | 設定 | 参照 | 処理対象のレコードビュー長を表す。 RECORD LENGTH句で指定したデータ名の領域に転記される。 RECORD LENGTH句の指定がない場合は転記されない。 |
SD-IFA-10 | 設定 | 参照 | − | データベース操作文の種別を表す。 'CONNECT' = CONNECT文 'DISCONNECT' = DISCONNECT文 'ERASE' = ERASE文 'FETCH' = FETCH文 'FIND' = FIND文 'GET' = GET文 'MODIFY' = MODIFY文 'NULLIFY' = NULLIFY文 'RECONNECT' = RECONNECT文 'STORE' = STORE文 'TEST' = データベース条件文 |
SD-IFA-11 | 設定 | 参照 | − | サブスキーマを表す。 サブスキーマが転記される。 |
SD-IFA-12 | 設定 | 参照 | − | スキーマを表す。 スキーマが転記される。 |
データ受け渡しエリアおよび付加情報エリアでは,各文中に指定されたデータ名が引数になります。指定できるデータ名を次に示します。
領域名 | CALL文 実行前 |
シミュ レータ |
CALL文 実行後 |
内容 |
---|---|---|---|---|
SD-DML-01 | 設定 | − | − | DML情報エリア長を表す。 128の固定長が転記される。 |
SD-DML-02 | − | − | − | 使用しない。 |
SD-DML-03 | 設定 | 参照 | − | 要求種別を表す。 'P' = ERASE文でALL指定なし。 'R' = FETCH(1)文でWITHIN,INDEXEDの指定なし。 または,FIND文でCURRENT,WITHIN,INDEXEDの指定なし。 'RI'= FETCH(1),FIND文でINDEXED指定あり。 'S' = FETCH(1),FIND文でWITHIN指定あり。 'C' = FIND文でCURRENT指定あり。 'H' = FETCH(2)文でWITHIN,INDEXEDの指定なし。 'HI'= FETCH(2)文でINDEXED指定あり。 'M' = FETCH(2)文でWITHIN指定あり。 'N' = GET(2)文。 |
SD-DML-04 | 設定 | 参照 | − | 一括検索範囲指定を表す。 'A' = FETCH文でADVANCING指定あり。 |
SD-DML-05 | 設定 | 参照 | − | 位置指示子指定を表す。 'S' = NULLIFY文でレコードビュー名,OWNER,MEMBERの指定なし。 または,CURRENT指定ありのFIND文で,レコードビュー名,OWNER,MEMBERの指定なし。 'R' = NULLIFY文でレコードビュー名の指定あり。 または,FIND文でCURRENT レコードビュー名の指定あり。 'O' = NULLIFY文でOWNER OF 親子集合ビュー名の指定あり。 または,FIND文でCURRENT OWNER OF 親子集合ビュー名の指定あり。 'M' = NULLIFY文でMEMBER OF 親子集合ビュー名の指定あり。 または,FIND文でCURRENT MEMBER OF 親子集合ビュー名の指定あり。 |
SD-DML-06 | 設定 | 参照 | − | 次のレコードビュー名または親子集合ビュー名を表す。
|
SD-DML-07 | 設定 | 参照 | − | 次のインデクス名または親子集合ビュー名を表す。
|
SD-DML-08 | 設定 | 参照 | − | 探索方向を表す。 'F' = FETCH,FIND文でFIRST指定あり。 'L' = 〃 LAST指定あり。 'N' = 〃 NEXT指定あり。 'P' = 〃 PRIOR指定あり。 'A' = 〃 RELATIVE指定なし。 'R' = 〃 RELATIVE指定あり。 'D' = 〃 DYNAMIC指定あり。 |
SD-DML-09 | 設定 | 参照 | − | 位置決め目的を表す。 'U' = FETCH,FIND文でUPDATE指定あり。 |
SD-DML-10 | 設定 | 参照 | − | 探索方向の整数値を表す。 RELATIVE指定時,未指定時の一意名または整数の値。 |
SD-DML-11 | 設定 | 参照 | − | パス名を表す。 FETCH文に指定されたパス名。 |
FETCH(1)文,FETCH(2)文,GET(2)文は,それぞれ次の文を指します。
領域名 | CALL文 実行前 |
シミュ レータ |
CALL文 実行後 |
内容 |
---|---|---|---|---|
SD-TYP-01 | 設定 | 参照 | − | データ名指定を表す。 'U' = USING指定あり。 |
SD-TYP-02 | 設定 | 参照 | − | 条件種別を表す。 'A' = データベース条件文のALSO指定 'NA'= 〃 NOT ALSO指定 'N' = 〃 NULL指定 'NN'= 〃 NOT NULL指定 'E' = 〃 EMPTY指定 'NE'= 〃 NOT EMPTY指定 'C' = 〃 CONTAINS指定 空白 = 上記以外 |
SD-TYP-03 | 設定 | 参照 | − | 左辺指定子を表す。 'R' = データベース条件左辺にレコードビュー名を指定 'O' = 〃 OWNER OF 親子集合ビュー名を指定 'M' = 〃 MEMBER OF 親子集合ビュー名を指定 'S' = 〃 レコードビュー名,OWNER,MEMBERのどの指定もなし 'X' = 〃 親子集合ビュー名を指定 空白 =上記以外 |
SD-TYP-04 | 設定 | 参照 | − | データベース条件左辺のレコードビュー名または親子集合ビュー名を表す(SD-TYP-03が 'S'または空白のときは,この領域も空白となる)。 |
SD-TYP-05 | 設定 | 参照 | − | 右辺指定子を表す。 'R' = データベース条件右辺にレコードビュー名を指定 'O' = 〃 OWNER OF 親子集合ビュー名を指定 'M' = 〃 MEMBER OF 親子集合ビュー名を指定 'S' = 〃 レコードビュー名,OWNER,MEMBERのどの指定もなし 'X' = 〃 親子集合ビュー名を指定 空白 =上記以外 |
SD-TYP-06 | 設定 | 参照 | − | データベース条件右辺のレコードビュー名または親子集合ビュー名を表す(SD-TYP-05が 'S'または空白のときは,この領域も空白となる)。 |
SD-TYP-07 | 設定 | 参照 | − | 探索条件の最初に現れた比較演算子を表す。 '>' = GREATER THAN または > 指定 '<' = LESS THAN または < 指定 '=' = EQUAL または = 指定 '>='= GREATER THAN OR EQUAL または >= 指定 '<='= LESS THAN OR EQUAL または <= 指定 空白= 上記以外 |
SD-TYP-08 | 設定 | 参照 | − | 探索条件の最初に現れた構成要素ビュー名またはKEYを表す (SD-TYP-07が空白のときは,この領域も空白となる)。 |
SD-TYP-09 | 設定 | 参照 | − | RETAINING種別を表す。 'A' = RETAINING指定ありのFETCH,FIND,STORE文で,RECORD,親子集合ビュー名の指定がない。 'R' = ERASE文でRETAINING指定あり。 または,RETAINING RECORD指定ありのFETCH,FIND,STORE文で,親子集合ビュー名の指定がない。 'S' = RETAINING 親子集合ビュー名指定ありのFETCH,FIND,STORE文で,RECORDの指定がない。 'B' = FETCH,FIND,STORE文に,RETAINING RECORD 親子集合ビュー名の指定がある。 |
SD-TYP-10 | 設定 | 参照 | − | RETAININGに指定された親子集合ビューの個数を表す。親子集合ビュー名の指定があれば,その個数が入る。 |
SD-TYP-11 | 設定 | 参照 | − | RETAININGに指定された親子集合ビュー名を表す(SD-TYP-10が0の場合,この領域はない)。 |
COBOL原始プログラムのコンパイル時,次の部分はエラーチェックの対象となりません。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.