COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

19.1.2 手続き部(構造型データベース(XDM/SD)操作シミュレーション機能)

【標準仕様との関連】
COBOL2002 言語 標準仕様編 10. 手続き部(PROCEDURE DIVISION)
<この項の構成>
(1) CONNECT文
(2) DISCONNECT文
(3) ERASE文
(4) FETCH文
(5) FIND文
(6) GET文
(7) MODIFY文
(8) NULLIFY文
(9) RECONNECT文
(10) STORE文
(11) 検索条件文
(12) データベース条件文

(1) CONNECT文

形式
[図データ]

機能
CONNECT文は,レコードを一つまたはそれ以上の親子集合の子レコードとして組み入れる。

構文規則
  1. 親子集合ビュー名は,二重指定してはならない。
  2. 親子集合ビュー名を2,001個以上指定してはならない。

(2) DISCONNECT文

形式
[図データ]

機能
DISCONNECT文は,一つまたはそれ以上の親子集合の子レコードになっているレコードをその親子集合から切り離す。

構文規則
  1. 親子集合ビュー名は,二重指定してはならない。
  2. 親子集合ビュー名を2,001個以上指定してはならない。

(3) ERASE文

形式
[図データ]

機能
ERASE文は,一つまたはそれ以上のレコードをデータベースから削除する。

(4) FETCH文

形式
書き方1
[図データ]
書き方2
[図データ]
書き方3
[図データ]
書き方4
[図データ]

機能
FETCH文は,データベース中にあるレコードを探索し,そのレコードを利用できるようにする。

構文規則
  1. 一意名1は,4バイトの2進項目でなければならない。
  2. 整数1は,0を除く-32,767〜32,767の範囲の値しか指定できない。ただし,書き方1は,1〜32,767の範囲の値または-1しか指定できない。
  3. 書き方2で,マルチメンバセットで検索条件文を指定するときはレコードビュー名は省略できない。
  4. 書き方2で,レコードビュー名を省略したときはINTO指定を省略できない。
  5. データ名2とデータ名3は,強く型付けされていない固定長集団項目,英字項目または英数字項目でなければならない。
  6. データ名2の長さは,レコードビュー長(マルチメンバセットのときは最大レコードビュー長)以上のサイズでなければならない。
  7. データ名1〜3は,作業場所節,局所場所節または連絡節で定義できる。
  8. データ名1の形式を次に示す。

    図19-1 データ名1の形式

    [図データ]

  9. データ名1は,強く型付けされていない固定長集団項目または英数字項目でなければならない。
  10. 書き方1でDYNAMICを指定したときWHERE条件を記述しなくてもよい。通常のWHERE条件を記述すると,そのまま処理される。WHERE条件を省略すると,WHERE KEY = データ名(DYNAMIC KEYに指定された)を仮定する。
  11. 書き方1,書き方3でLASTを指定するときは,INDEXEDを指定しなければならない。
  12. 親子集合ビュー名2は,二重に指定してはならない。
  13. 親子集合ビュー名2は,2,001個以上指定してはならない。
  14. インデクス名を指定していない場合,条件中に"KEY"を指定してはならない。
  15. 書き方3でNEXT/PRIORを指定するときは,ADVANCINGを指定してはならない。
  16. データ名1は添字付けおよび修飾をしてもよい。
  17. データ名2,3は修飾してもよい。
  18. 書き方1でDYNAMICを指定する場合は,探索条件にはKEY = データ名しか指定できない。

(5) FIND文

形式
書き方1
[図データ]
書き方2
[図データ]
書き方3
[図データ]

機能
FIND文は,データベース中のあるレコードを検索する。

構文規則
  1. 書き方2で,あるマルチメンバセットで条件を指定するときは,レコードビュー名は省略できない。
  2. 書き方1,2は,INTO指定を除いてFETCH文(書き方1,2)と同じである。
  3. データ名1は固定長集団項目,英字項目または英数字項目のどれかでなければならない。
  4. データ名1は作業場所節,局所場所節または連絡節で定義する。
  5. 書き方1でDYNAMICを指定したときWHERE条件を記述しなくてもよい。通常のWHERE条件を記述すると,そのまま処理される。WHERE条件を省略すると,WHERE KEY = データ名(DYNAMIC KEYに指定された)を仮定する。
  6. 書き方1でLASTを指定するときは,INDEXED指定が必要である。
  7. 書き方3のRETAINING指定については,「(4) FETCH文」を参照のこと。
  8. データ名1は修飾してもよい。

(6) GET文

形式
書き方1
[図データ]
書き方2
[図データ]

機能
GET文は,FIND文で位置づけられたレコードを利用できるようにする。

構文規則
  1. データ名2は,英字項目,英数字項目または強く型付けされていない固定長集団項目でなければならない。
  2. データ名2の長さは,レコードビュー長以上のサイズでなければならない。
  3. データ名2は,作業場所節,局所場所節または連絡節で定義する。
  4. DATA AREAを指定した場合,レコードビュー名2,INTO指定のどちらかを指定しなければならない。
  5. データ名1の構文規則については,「(4) FETCH文」を参照のこと。
  6. データ名1は添字付けおよび修飾をしてもよい。
  7. データ名2は修飾してもよい。

(7) MODIFY文

形式
[図データ]

機能
MODIFY文は,データベース中のレコードを更新する。

構文規則
  1. データ名1は,固定長集団項目,英字項目または英数字項目でなければならない。
  2. データ名1の長さは,レコードビュー長以上のサイズでなければならない。
  3. データ名1は,作業場所節,局所場所節または連絡節で定義する。
  4. データ名1は修飾してもよい。

(8) NULLIFY文

形式
[図データ]

機能
NULLIFY文は,位置指示文にnull(ナル)値を設定する。

構文規則
  1. OWNER OF 親子集合ビュー名1は,特異親子集合に対しては指定できない。

(9) RECONNECT文

形式
[図データ]

機能
RECONNECT文は,一つまたはそれ以上の親子集合の子レコードになっているレコードを,その親子集合内または親子集合の子レコードとして再接続する。

構文規則
  1. 親子集合ビュー名は,二重指定してはならない。
  2. 親子集合ビュー名を2,001個以上指定してはならない。

(10) STORE文

形式
[図データ]

機能
STORE文は,データベースにレコードを格納する。

構文規則
  1. データ名1は,英字項目,英数字項目または固定長集団項目でなければならない。
  2. データ名1の長さは,レコードビュー長以上のサイズでなければならない。
  3. データ名1は,作業場所節,局所場所節または連絡節で定義する。
  4. 親子集合ビュー名は,二重指定してはならない。
  5. 親子集合ビュー名は,2,001個以上指定してはならない。
  6. データ名1は修飾してもよい。

(11) 検索条件文

形式
[図データ]

機能
検索条件文は,FIND文またはFETCH文中のWHERE指定で使用され,レコードを検索する条件を指定する。

構文規則
  1. 一意名は,サブスキーマ節で定義してはならない。
  2. 定数に英数字定数(表意定数を含まない),整数定数,実数定数および日本語文字定数以外は指定できない。
  3. 構成要素ビュー名は,基本配列,配列に含まれない固定長集団項目,英数字項目,日本語項目,外部10進項目,内部10進項目および2進項目を指定する(配列に含まれる固定長集団項目はエラーチェックしない)。
  4. 複数の条件を指定する場合,論理演算子のAND,ORで検索条件をつなぐ。
  5. 検索条件にレコードビュー名は指定できない。

一般規則
  1. 検索条件文では,少なくとも比較演算子の左辺または右辺のどちらかに構成要素ビュー名を指定する。
  2. 条件の選択条件は256個以上指定できない。
  3. 条件で一つの選択条件の中の関係条件数は256個以上指定できない。
  4. KEYを指定した条件には,構成要素ビュー名は指定できない。
  5. 条件中にKEYを指定している場合は,複数の関係条件をORで結合できない。
  6. 条件中にKEYを指定した関係条件と一般の関係条件を同時に記述できない。
  7. CONTENTが指定された構成要素ビュー名は,構成要素ビュー名としてではなく,COBOLの一意名と同様に扱われる。
  8. KEYを指定した関係条件は3個以上記述できない。
  9. 検索条件文に指定できる項目の組み合わせと形式の組み合わせを「表19-1 検索条件文に指定できる項目の組み合わせ」と「表19-2 検索条件文に指定できる形式の組み合わせ」に示す。

    表19-1 検索条件文に指定できる項目の組み合わせ

    左辺 右辺
    構成要素ビュー名 一意名 定数
    FG AN N ED ID BI FG AN N ED ID BI LA LN LJ







    FG ○a ○a × × × × ○a ○a × × × × ○a × ×
    AN ○a ○a × × × × ○a ○a × × × × ○a × ×
    N × × ○a × × × × × ○a × × × × × ○a
    ED × × × ○n ○n × × × × ○n × × × ○n ×
    ID × × × ○n ○n × × × × × ○n × × ○n ×
    BI × × × × × × × × × × × ○n × × ×


    FG ○a ○a × × × × × × × × × × × × ×
    AN ○a ○a × × × × × × × × × × × × ×
    N × × ○a × × × × × × × × × × × ×
    ED × × × ○n × × × × × × × × × × ×
    ID × × × × ○n × × × × × × × × × ×
    BI × × × × × ○n × × × × × × × × ×

    LA ○a ○a × × × × × × × × × × × × ×
    LN × × × ○n ○n × × × × × × × × × ×
    LJ × × ○a × × × × × × × × × × × ×

(凡例)
○a:文字比較する
○n:数字比較する
× :許されない
AN:英数字
N :日本語
ED:外部10進
ID:内部10進
BI:2進
FG:固定長集団
LA:英数字定数
LN:数字定数
LJ:日本語文字定数

表19-2 検索条件文に指定できる形式の組み合わせ

左辺 右辺
定数 構成要素ビュー名
基本項目 基本配列の
要素
配列に含まれない
固定長集団項目
定数 ×
構成要素ビュー名 基本項目
基本配列の要素
配列に含まれない固定長集団項目

(凡例)
○:組み合わせ可能
×:組み合わせ不可能

(12) データベース条件文

形式
書き方1
[図データ]

機能
二つの位置指示子が示すレコードが同一かどうかを判定する。
書き方2
[図データ]

機能
位置指示子がナル値かどうかを判定する。
書き方3
[図データ]

機能
親子集合が空かどうかを判定する。
書き方4
[図データ]

機能
レコードが親子集合型の子レコードかどうかを判定する。