Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


2.3.1 1個の表からの検索

1個の表からの検索例として,在庫表の中から商品名が"スカート"の行だけをSELECT文で検索するときの例を次の図に示します。

図2‒5 1個の表からの検索

[図データ]

表の検索結果は表形式になり,処理要求したUAPに渡されます。

検索結果の表をUAPから参照するためには,カーソルを使用します。カーソルには,検索結果の表の特定の行を指す機能があるので,UAPはカーソルの指している行の内容を読み出して加工できます。

検索結果の表に対するUAPからのデータの処理手順を次の図に示します。

図2‒6 検索結果の表に対するUAPからのデータの処理手順

[図データ]

次に図「検索結果の表に対するUAPからのデータの処理手順」で示した処理手順の各ステップを説明します。

  1. カーソルの定義

    カーソルを使用するために,カーソルの名称,そのカーソルを使用して検索する表の名称,及び探索条件を定義します。例えば,図「1個の表からの検索」に示す例に当てはめて考えた場合,カーソル名称を「CUR1」として,在庫表から"スカート"だけを探索するときは,次のように定義します。

       DECLARE CUR1 CURSOR FOR
       SELECT SNAME,COL,TANKA FROM ZAIKO
         WHERE SNAME=N'スカート'
  2. カーソルを開く

    カーソルを開くと,定義した条件に従って検索結果を取り出せる状態になります。検索結果は,システム内に表形式で格納され,カーソルを閉じるまで有効です。

    カーソルを開くには,次のように記述します。

       OPEN CUR1

    カーソルを開いた直後は,表の第1列の第1行目の一つ上にカーソルがあります。カーソル名称が「CUR1」で,在庫表から"スカート"を検索する条件にしたとき,カーソルを開いた直後の状態を次の図に示します。

    図2‒7 カーソルを開いた直後の状態

    [図データ]

  3. データの取り出し

    FETCH文を使用し,カーソルを開いた状態の位置から1行進めて,その行の内容をUAP内の指定した領域に格納します。

    カーソルを開いた直後の状態から,検索した内容がUAPの領域に格納される例を次の図に示します。

    図2‒8 検索した内容を取り出してUAPの領域に格納する例

    [図データ]

  4. データの処理

    UAP上の領域に格納されたデータの内容を必要に応じて出力します。

  5. カーソルを閉じる

    検索結果に対するUAPのデータ処理が完了したらカーソルを閉じます。

    カーソルを閉じると,システム内に保存されていた検索結果の表は消去されます。カーソルを閉じるには,次のように記述します。

       CLOSE CUR1