Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


2.5.5 レコードの検索【SD FMB】

SDBデータベース中のレコードを検索し,データ格納エリアまたは埋込み変数にレコードを取り出します。検索されたレコードに対してはレコードの位置づけが行われます。

〈この項の構成〉

(1) 検索の種類

検索には,次の2つがあります。

(2) SDBデータベースのアクセス例

データベースを階層順に従ってアクセスする例を説明します。

レコードの検索,格納,および位置指示子の位置づけを行うと,レコードの位置づけが行われ,そのレコードの子レコードに対してアクセスができるようになります。

同一レコード型の別レコードに対してレコードの位置づけを行うと,前回アクセスしたレコードの子レコードに対してはアクセスできなくなり,今回アクセスしたレコードの子レコードに対してアクセスできるようになります。

SD FMBのSDBデータベースのアクセス例を次の図に示します。この図では,レコードA1→B1→B2→A1の順序で検索しています。

図2‒36 SD FMBのSDBデータベースのアクセス例

[図データ]

COBOLのUAPからDMLを実行した場合,上記の図中の個別開始はシステムが内部的に実行します。

ポイント

HiRDB/SDでは,レコードの検索や格納などを行うと,そのレコードの位置情報を保持します。この情報を位置指示子といいます。HiRDB/SDは,位置指示子を使用してSDBデータベースにアクセスします。位置指示子については,「2.5.3 位置指示子」を参照してください。

なお,検索結果がNOT FOUND(SQLCODE=100)となった場合,対象レコードのレコード位置指示子は空値になります。

(3) 検索の順序,開始位置および方向

検索は順序,開始位置および方向を決定してレコードを検索します。

順序,開始位置および方向については,「17.3.3 検索の順序,開始位置および方向」を参照してください。

(4) レコードの特定方法

レコードの検索では,次の方法でレコードを特定します。

(5) レコードの位置づけ

レコード型内の検索時は,レコードに位置指示子を位置づけておく必要はありません。親子集合型内の検索時は,親子集合位置指示子の親レコードを位置づけておく必要があります。レコードの位置づけについては,「2.5.3(1) レコードの位置づけ」を参照してください。