Закрытие курсора
Когда приложение завершит работу с курсором, он вызывает SQLCloseCursor , чтобы закрыть курсор. Например:
SQLCloseCursor(hstmt);
Пока приложение не закроет курсор, оператор, на котором открыт курсор, не может использоваться для большинства других операций, таких как выполнение другой инструкции SQL. Полный список функций, которые могут вызываться при открытии курсора, см . в приложении B: таблицы перехода состояния ODBC.
Примечание.
Чтобы закрыть курсор, приложение должно вызывать SQLCloseCursor, а не SQLCancel.
Курсоры остаются открытыми, пока они не будут явно закрыты, за исключением случаев, когда транзакция фиксируется или откатывается, в этом случае некоторые источники данных закрывают курсор. В частности, достижение конца результирующий набор, когда SQLFetch возвращает SQL_NO_DATA, не закрывает курсор. Даже курсоры на пустых результирующих наборах (результирующие наборы, созданные при успешном выполнении инструкции, но которая не возвращала строк) должна быть явно закрыта.