Как избавиться от ярлыка, используемого, но не определенного - PullRequest
1 голос
/ 08 июля 2010

Я пытаюсь напечатать строки таблицы во встроенном sql. У меня есть этот код, где публикация - это таблица, а 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 Ответ

1 голос
/ 09 июля 2010

Просто угадай ... Поместите строку WHENEVER первой во встроенную последовательность SQL.

Из «Справочного тома SQL 2»:

WHENEVER
.....
Примечание:
.....
Каждый исполняемый оператор SQL в программе находится в пределах одной неявной или> явной инструкции WHENEVER каждого типа. Область действия оператора WHENEVER связана с последовательностью перечисления операторов в программе, а не с последовательностью их выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...