Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能(UAP開発編)


2.6.1 レコードの更新

DMLによる子レコードの更新方法について説明します。子レコードを更新する際の処理の流れを次の図に示します。

図2‒6 子レコードを更新する際の処理の流れ

[図データ]

[説明]

  1. 親レコードへの位置づけ

    更新対象の子レコード実現値の親レコード実現値に,位置指示子を位置づけます。

    FIND FIRST 親レコード名
         WHERE キーの条件

    「親レコードへの位置づけ」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号160〜162の処理が該当します。

  2. 子レコードの検索

    更新指定(FOR UPDATE指定)で,更新対象の子レコード実現値を検索します。先頭の子レコード実現値から順に,更新対象の子レコード実現値が見つかるまで(更新対象の子レコード実現値と埋込み変数Aの値が一致するまで)FETCHを行います。

  3. 1件目の子レコードの検索

    FETCH FOR UPDATE           ←更新目的であることを指定します。
          FIRST 子レコード名   ←1件目の子レコードを検索します。
          INTO :埋込み変数A
          WITHIN 親子集合名

    「1件目の子レコードの検索」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号305〜308の処理が該当します。

  4. 2件目以降の子レコードの検索

    更新対象の子レコード実現値と埋込み変数Aの値が一致するまで検索を繰り返します。

    FETCH FOR UPDATE           ←更新目的であることを指定します。
          NEXT 子レコード名    ←位置づけしている位置から,次のレコード実現値を検索します。
          INTO :埋込み変数A
          WITHIN 親子集合名

    「2件目以降の子レコードの検索」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号319〜322の処理が該当します。

  5. 子レコードの更新

    埋込み変数Aに,更新後の子レコード実現値を格納します。そのあとに,MODIFY文を実行して,埋込み変数Aの値で子レコード実現値を更新します。

    MODIFY 子レコード名 FROM :埋込み変数A

    「子レコードの更新」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号193〜195の処理が該当します。

FIND文,FETCH文,MODIFY文の記述形式および規則については,マニュアル「HiRDB 構造型データベース機能」の「操作系DML」を参照してください。