3.6.2 エラーの自動判定
WHENEVER文を使用すると,エラーが発生したかどうか自動的に判定できます。
WHENEVER文では,次に示す内容について判定ができます。
-
エラーが発生した
-
検索する行がなくなった
-
正常終了時の警告情報の有無
なお,WHENEVER文の詳細については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
- 〈この項の構成〉
(1) エラーが発生した場合の判定(SQLCODE<0)
SQLERRORを指定したWHENEVER文を使用して判定します。
エラーが発生したときに取らなければならない処置を指定することで,エラーが発生したときに指定した処置へ処理を移行します。また,エラーを参照する処理を指定すると,リターンコードと関連する情報を参照できます。
(2) 検索する行がなくなった(SQLCODE=100)
NOT FOUNDを指定したWHENEVER文を使用して判定します。
検索する行がなくなったときに取らなければならない処置を指定することで,検索する行がなくなったときに指定した処置へ処理を移行します。
(3) 正常終了時の警告情報の有無(SQLWARN0='W',又はSQLCODE>0かつSQLCODE≠100)
SQLWARNINGを指定したWHENEVER文を使用して判定します。
正常終了で警告情報があったときに取らなければならない処置を指定することで,警告情報があるときだけ指定した処置へ処理を移行します。
リストを使用した検索の場合,データなしの正常終了(リスト作成時にあった行が削除された)の可能性があります。SQLCODEが110,又はSQLSTATEが'R2000'ならば,データなしの正常終了と判断して,検索行に対する処理をスキップする必要があります。