Поделиться через


Закрытие курсора

Когда приложение завершит работу с курсором, он вызывает SQLCloseCursor , чтобы закрыть курсор. Рассмотрим пример.

SQLCloseCursor(hstmt);  

Пока приложение не закроет курсор, команда, на которой открыт курсор, не может использоваться для большинства других операций, таких как выполнение другой команды SQL. Полный список функций, которые могут вызываться при открытии курсора, см. в приложении B: таблицы перехода состояния ODBC.

Замечание

Чтобы закрыть курсор, приложение должно вызывать SQLCloseCursor, а не SQLCancel.

Курсоры остаются открытыми, пока они не будут явно закрыты, за исключением случаев, когда транзакция фиксируется или откатывается; в таких случаях некоторые источники данных закрывают курсор. В частности, достижение конца результирующего набора, когда SQLFetch возвращает SQL_NO_DATA, не закрывает курсор. Даже курсоры на пустых результирующих наборах (результирующие наборы, созданные при успешном выполнении инструкции, но которая не возвращала строк) должна быть явно закрыта.