1個の表からの検索例として,在庫表の中から商品名が"スカート"の行だけをSELECT文で検索するときの例を次の図に示します。
図2-5 1個の表からの検索
表の検索結果は表形式になり,処理要求したUAPに渡されます。
検索結果の表をUAPから参照するためには,カーソルを使用します。カーソルには,検索結果の表の特定の行を指す機能があるので,UAPはカーソルの指している行の内容を読み出して加工できます。
検索結果の表に対するUAPからのデータの処理手順を次の図に示します。
図2-6 検索結果の表に対するUAPからのデータの処理手順
次に図2-6で示した処理手順の各ステップを説明します。
- カーソルの定義
カーソルを使用するために,カーソルの名称,そのカーソルを使用して検索する表の名称,及び探索条件を定義します。例えば,図2-5に示す例に当てはめて考えた場合,カーソル名称を「CUR1」として,在庫表から"スカート"だけを探索するときは,次のように定義します。
DECLARE CUR1 CURSOR FOR
SELECT SNAME,COL,TANKA FROM ZAIKO
WHERE SNAME=N'スカート'
- カーソルを開く
カーソルを開くと,定義した条件に従って検索結果を取り出せる状態になります。検索結果は,システム内に表形式で格納され,カーソルを閉じるまで有効です。
カーソルを開くには,次のように記述します。
OPEN CUR1
カーソルを開いた直後は,表の第1列の第1行目の一つ上にカーソルがあります。カーソル名称が「CUR1」で,在庫表から"スカート"を検索する条件にしたとき,カーソルを開いた直後の状態を次の図に示します。
図2-7 カーソルを開いた直後の状態
- データの取り出し
FETCH文を使用し,カーソルを開いた状態の位置から1行進めて,その行の内容をUAP内の指定した領域に格納します。
カーソルを開いた直後の状態から,検索した内容がUAPの領域に格納される例を次の図に示します。
図2-8 検索した内容を取り出してUAPの領域に格納する例
- データの処理
UAP上の領域に格納されたデータの内容を必要に応じて出力します。
- カーソルを閉じる
検索結果に対するUAPのデータ処理が完了したらカーソルを閉じます。
カーソルを閉じると,システム内に保存されていた検索結果の表は消去されます。カーソルを閉じるには,次のように記述します。
CLOSE CUR1
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.