Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
Embedded SQL プログラム内でのエラー処理を指定します。
WHENEVER { SQLERROR | SQLWARNING | NOTFOUND } GOTO label | STOP | CONTINUE | { C-code; }
label : identifier
WHENEVER 文を使って、SQL 文を処理するときにデータベースに発生するエラー、警告、例外条件をトラップします。Embedded SQL C プログラム内のどこにでもこの文を入れることができ、この文はコードを生成しません。プリプロセッサは、それぞれの継続する SQL 文の後にコードを生成します。すべての Embedded SQL 文では、WHENEVER 文のソース行から同じエラー条件の次の WHENEVER 文、またはソースファイルの最後まで、エラーアクションは有効です。
エラー条件は、文がいつ実行されたかではなく、C 言語ソースファイル内での位置に基づいて有効になります。
デフォルトアクションは CONTINUE です。
この文は、単純なプログラムの中で便利に使用できます。たいていの場合、SQLCA (SQLCODE) の sqlcode フィールドを直接チェックするのがエラー条件をチェックする最も簡単な方法です。この場合、WHENEVER 文を使用しません。WHENEVER 文が実行されると、プリプロセッサはそれぞれの文の後に if (SQLCODE) テストを生成します。
なし
SQL/2008 WHENEVER 文で実行される例外条件宣言は、SQL/2008 標準のコア機能です。標準では、キーワード SQLERROR ではなく SQLEXCEPTION を使用します。WHENEVER 文に単なる文ラベルではなく直接 C コードを含める機能は、ベンダー拡張です。STOP アクションもベンダー拡張です。
EXEC SQL WHENEVER NOTFOUND GOTO done; EXEC SQL WHENEVER SQLERROR { PrintError( &sqlca ); return( FALSE ); };