Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Соответствие
Введенная версия: Соответствие стандартам ODBC 3.0: ISO 92
Сводка
SQLCloseCursor закрывает открытый курсор на выписке и отбрасывает ожидающие результаты.
Syntax
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
Arguments
ОператорHandle
[Входные данные] Дескриптор инструкции.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR или SQL_INVALID_HANDLE.
Diagnostics
Когда SQLCloseCursor возвращает SQL_ERROR или SQL_SUCCESS_WITH_INFO, связанное значение SQLSTATE можно получить, вызвав SQLGetDiagRec с помощью HandleType SQL_HANDLE_STMT и HandleHandleStatementHandle. В следующей таблице перечислены значения SQLSTATE, которые обычно возвращает SQLCloseCursor , и каждое из них объясняется в контексте этой функции; обозначение «(DM)» предшествует описаниям SQLSTATE, возвращаемым менеджером драйверов. Возвращаемый код, связанный с каждым значением SQLSTATE, SQL_ERROR, если не указано иное.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Общее предупреждение | Информационное сообщение для конкретного драйвера. (Функция возвращает SQL_SUCCESS_WITH_INFO.) |
| 24000 | Недопустимое состояние курсора | Курсор на StatementHandle не был открыт. (Это возвращается только ODBC 3. Драйвер X .) |
| HY000 | Общая ошибка | Произошла ошибка, для которой не было определенного SQLSTATE и для которого не было определено значение SQLSTATE для конкретной реализации. Сообщение об ошибке, возвращаемое SQLGetDiagRec в буфере *MessageText , описывает ошибку и ее причину. |
| HY001 | Ошибка выделения памяти | Драйверу не удалось выделить память, необходимую для поддержки выполнения или завершения функции. |
| HY010 | Ошибка последовательности функций | (DM) Асинхронно выполняющаяся функция вызывалась для дескриптора соединения, связанного с StatementHandle , и она всё ещё выполнялась, когда эта функция была вызвана. (DM) асинхронно выполняющаяся функция была вызвана для StatementHandle и по-прежнему выполнялась при вызове этой функции. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations или SQLSetPos были вызваны для ОператораHandle и возвращены SQL_NEED_DATA. Эта функция была вызвана до отправки данных для всех параметров выполнения или столбцов. |
| HY013 | Ошибка управления памятью | Не удалось обработать вызов функции, так как к базовым объектам памяти не удалось получить доступ, возможно, из-за низкой памяти. |
| HY117 | Подключение приостановлено из-за неизвестного состояния транзакции. Разрешены только функции отключения и только для чтения. | (DM) Дополнительные сведения о приостановленном состоянии см. в статье SQLEndTran Function. |
| HYT01 | Время ожидания для подключения истекло | Срок ожидания подключения истек до того, как источник данных ответил на запрос. Период времени ожидания подключения задается через SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT. |
| IM001 | Драйвер не поддерживает эту функцию | (DM) Драйвер, связанный с StatementHandle , не поддерживает функцию. |
Comments
SQLCloseCursor возвращает SQLSTATE 24000 (состояние курсора недействительно), если курсор открыт. Вызов SQLCloseCursor эквивалентен вызову SQLFreeStmt с опцией SQL_CLOSE, за исключением того, что SQLFreeStmt с SQL_CLOSE не влияет на приложение, если курсор открыт на операторе, тогда как SQLCloseCursor возвращает SQLSTATE 24000 (состояние курсора недействительно).
Замечание
Если ODBC 3. x приложение, работающее с ODBC 2. Драйвер xвызывает SQLCloseCursor , когда курсор открыт, SQLSTATE 24000 (состояние недействительного курсора) не возвращается, потому что менеджер драйверов отображает SQLCloseCursor в SQLFreeStmt с SQL_CLOSE.
Для получения дополнительной информации см. раздел «Закрытие курсора».
Пример кода
См. SQLBrowseConnect Function и SQLConnect Function.
Связанные функции
| Сведения о | Смотри |
|---|---|
| Отмена обработки инструкций | Функция SQLCancel |
| Освобождение ручки | Функция SQLFreeHandle |
| Обработка нескольких наборов результатов | Функция SQLMoreResults |