我正在尝试在嵌入式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'已使用但未定义。 我该如何解决这个问题?
答案 0 :(得分:1)
猜猜...... 将WHENEVER行首先放入嵌入式sql序列中。
从“SQL参考卷2”:
WHENEVER
.....
注:
.....
程序中的每个可执行SQL语句都在每种类型的一个隐式或&gt;显式WHENEVER语句的范围内。 WHENEVER语句的范围与&gt;程序中语句的列表顺序有关,而不是它们的执行顺序。