下列 GBase 8s ESQL/C 示例程序有三个 WHENEVER 语句,其中两个是 WHENEVER SQLERROR 语句。第 4 行使用带有 SQLERROR 的 STOP 来覆盖错误的缺省的 CONTINUE 活动。
第 8 行指定 CONTINUE 关键字来将错误的处理返回到缺省的行为。对于第 4 行与第 8 行之间的所有 SQL 语句,预处理器插入检查错误的代码,如果发生错误,则终止程序执行。因此,第 6 行 INSERT 语句产生的任何错误都会导致程序停止。
1 main() 2 { 3 EXEC SQL connect to 'test'; 4 EXEC SQL WHENEVER SQLERROR STOP; 5 printf("\n\nGoing to try first insert\n\n"); 6 EXEC SQL insert into test_color values ('green'); 7 EXEC SQL WHENEVER NOT FOUND CONTINUE; 8 EXEC SQL WHENEVER SQLERROR CONTINUE; 9 printf("\n\nGoing to try second insert\n\n"); 10 EXEC SQL insert into test_color values ('blue'); 11 EXEC SQL select paint_type from paint where color='red'; 12 EXEC SQL disconnect all; 13 printf("\n\nProgram over\n\n"); 14 }