Страница 1 из 1

DSQL. Fetch cursor

Добавлено: 18 дек 2012, 16:49
mwoland
В direct SQL создаю хранимую функцию "SQL FUNCTION ...". Объявляю в ней курсор "DECLARE CURSOR...". Открываю курсор, выбираю в нем первую запись "FETCH NEXT...". Как узнать, о результате выполнения FETCH? На @@FETCH_STATUS ругается, т.к. запрос жестко парсится (от этой псевдо "мультиплатформенности" одни проблемы).

Re: DSQL. Fetch cursor

Добавлено: 18 дек 2012, 18:36
Den
mwoland писал(а):На @@FETCH_STATUS ругается
конечно будет ругаться на эту фишку )
"
В хранимых процедурах и функциях доступны глобальные переменные:

<global-variables> = #NOTFOUND | #OK | #ROWCOUNT
#NOTFOUND - статус операции FETCH, когда больше нет записей в выборке. Тип: булевский.

#OK - статус операции FETCH, когда данные были успешно выбраны. Тип: булевский.

#ROWCOUNT - количество записей в курсоре. Можно применять для получения количества записей. Тип: целое число.

Эти глобальные переменные реализованы в драйвере Oracle только для неявных курсоров.

"
Ну вроде как можно проверять на статусы...но видимо только для оракла )
Я как то пинал под скуль , но быстро бросил... что то вроде
if (FETCH NEXT FROM curtest INTO c10)=#OK

так как компилятор не пропускал такую конструкцию

а вообще курсоры в dsql это зло ) не для того он был придуман чтобы на курсоры "скатываться"...как то уж крайний случай совсем тока если