Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Соответствия
Представлена версия: соответствие стандартам ODBC 3.0: ISO 92
Сводка
SQLCloseCursor закрывает курсор, открытый в инструкции, и удаляет ожидающие результаты.
Синтаксис
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
Аргументы
ОператорHandle
[Входные данные] Дескриптор инструкции.
Возвраты
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR или SQL_INVALID_HANDLE.
Диагностика
Когда SQLCloseCursor возвращает SQL_ERROR или SQL_SUCCESS_WITH_INFO, связанное значение SQLSTATE может быть получено путем вызова SQLGetDiagRec с handleType SQL_HANDLE_STMT и дескриптором инструкцииHandle. В следующей таблице перечислены значения SQLSTATE, которые обычно возвращаются SQLCloseCursor и объясняются каждый из них в контексте этой функции. Нотация "(DM)" предшествует описаниям SQLSTATEs, возвращаемым диспетчером драйверов. Возвращаемый код, связанный с каждым значением SQLSTATE, SQL_ERROR, если не указано иное.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Общее предупреждение | Информационное сообщение для конкретного драйвера. (Функция возвращает SQL_SUCCESS_WITH_INFO.) |
| 24000 | Недопустимое состояние курсора | Курсор не был открыт на операторе StatementHandle. (Это возвращается только ODBC 3.x driver.) |
| HY000 | Общая ошибка | Произошла ошибка, для которой не было определенного SQLSTATE и для которого не было определено значение SQLSTATE для конкретной реализации. Сообщение об ошибке, возвращаемое SQLGetDiagRec в буфере *MessageText , описывает ошибку и ее причину. |
| HY001 | Ошибка выделения памяти | Драйверу не удалось выделить память, необходимую для поддержки выполнения или завершения функции. |
| HY010 | Ошибка последовательности функций | (DM) Асинхронно выполняющаяся функция была вызвана для дескриптора соединения, связанного с ОператоромHandle , и по-прежнему выполнялась при вызове этой функции. (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 , не поддерживает функцию. |
Комментарии
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 и функцию SQLConnect.
Связанные функции
| Сведения | Раздел |
|---|---|
| Отмена обработки инструкций | Функция SQLCancel |
| Освобождение дескриптора | Функция SQLFreeHandle |
| Обработка нескольких результирующих наборов | Функция SQLMoreResults |