如何摆脱使用但未定义的标签

时间:2010-07-08 19:14:06

标签: c++ sql c db2 embedded-sql

我正在尝试在嵌入式sql中打印表的行。我有这个代码,其中publication是表,pubid是属性。我试过这个:

    EXEC SQL DECLARE C1 CURSOR FOR SELECT pubid FROM publication;
    EXEC SQL OPEN C1;
    EXEC SQL WHENEVER NOT FOUND GOTO close_c1;
    for(;;) {
        EXEC SQL FETCH C1 INTO :pubid;
        cout<<pubid<<endl;
    }
    close_c1:
    EXEC SQL CLOSE C1;

编译器给出了这个错误:错误:标签'close_c1'已使用但未定义。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

猜猜...... 将WHENEVER行首先放入嵌入式sql序列中。

从“SQL参考卷2”:

  

WHENEVER
  .....
  注:
  .....
  程序中的每个可执行SQL语句都在每种类型的一个隐式或&gt;显式WHENEVER语句的范围内。   WHENEVER语句的范围与&gt;程序中语句的列表顺序有关,而不是它们的执行顺序。