下列 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 }