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]

此语句用于指定嵌入式 SQL 程序中的错误处理。

语法
WHENEVER { 
SQLERROR 
| SQLWARNING 
| NOTFOUND }
GOTO 
   label 
   | STOP 
   | CONTINUE 
   | { C-code; }
label :  identifier
注释

WHENEVER 语句用于捕获数据库在处理 SQL 语句时遇到的错误、警告和异常情况。可将此语句放置在嵌入式 SQL 程序中的任何位置,它不生成任何代码。预处理器将在每个连续的 SQL 语句后生成代码。错误操作对 WHENEVER 语句源行中的所有嵌入式 SQL 语句一直保持有效,直到发生下一个具有相同错误条件的 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 );
   };