2.6.3 レコードの削除
DMLによる子レコードの削除方法について説明します。子レコードを削除する際の処理の流れを次の図に示します。
[説明]
-
親レコードへの位置づけ
削除対象の子レコード実現値の親レコード実現値に,位置指示子を位置づけます。
FIND FIRST 親レコード名 WHERE キーの条件
「親レコードへの位置づけ」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号160〜162の処理が該当します。
-
子レコードの検索
更新指定(FOR UPDATE指定)で,削除対象の子レコード実現値を検索します。先頭の子レコード実現値から順に,削除対象の子レコード実現値が見つかるまでFETCHを行います。
-
1件目の子レコードの検索
FETCH FOR UPDATE ←更新目的であることを指定します。 FIRST 子レコード名 ←1件目の子レコードを検索します。 INTO :埋込み変数A WITHIN 親子集合名
「1件目の子レコードの検索」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号305〜308の処理が該当します。
-
2件目以降の子レコードの検索
削除対象の子レコード実現値と埋込み変数Aの値が一致するまで検索を繰り返します。
FETCH FOR UPDATE ←更新目的であることを指定します。 NEXT 子レコード名 ←位置づけしている位置から,次のレコード実現値を検索します。 INTO :埋込み変数A WITHIN 親子集合名
「2件目以降の子レコードの検索」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号319〜322の処理が該当します。
-
子レコードの削除
ERASE文を実行して,削除対象の子レコード実現値を削除します。
ERASE 子レコード名
「子レコードの削除」は,「2.11.2 コーディング例」に記載されているCOBOLソースプログラムの例の,行番号239〜241の処理が該当します。
FIND文,FETCH文,およびERASE文の記述形式および規則については,マニュアル「HiRDB 構造型データベース機能」の「操作系DML」を参照してください。