Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (P ~ Z)

 

WHENEVER 文 [ESQL]

この文は、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/2003   コア機能。

次は、WHENEVER 文の例です。

EXEC SQL WHENEVER NOTFOUND GOTO done;
EXEC SQL WHENEVER SQLERROR
   {
      PrintError( &sqlca );
      return( FALSE );
   };