Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Соответствие
Введенная версия: соответствие стандартам ODBC 3.8: отсутствует
Сводка
SQLCompleteAsync можно использовать для определения завершения асинхронной функции с помощью обработки на основе уведомления или опросов. Для получения дополнительной информации об асинхронных операциях см. раздел «Асинхронное исполнение».
SQLCompleteAsync реализован только в ODBC Driver Manager.
В режиме асинхронной обработки на основе уведомлений SQLCompleteAsync должен быть вызван после того, как менеджер драйверов поднимает объект событий, используемый для уведомления. SQLCompleteAsync завершает асинхронную обработку, а асинхронная функция генерирует возвратный код.
В режиме асинхронной обработки на основе опросов SQLCompleteAsync является альтернативой вызову исходной асинхронной функции без необходимости указывать аргументы в исходном вызове асинхронной функции. SQLCompleteAsync можно использовать независимо от того, включена ли библиотека курсоров ODBC.
Syntax
SQLRETURN SQLCompleteAsync(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
RETCODE * AsyncRetCodePtr);
Arguments
HandleType
[Ввод] Тип ручки, на которой следует выполнять асинхронную обработку. Допустимые значения — это SQL_HANDLE_DBC или SQL_HANDLE_STMT.
Дескриптор
[Ввод] Ручка для выполнения асинхронной обработки. Если Handle не является действительным дескриптором типа, указанного в HandleType, SQLCompleteAsync возвращает SQL_INVALID_HANDLE.
Если Handle не является действительным дескриптором типа, указанного в HandleType, SQLCompleteAsync возвращает SQL_INVALID_HANDLE.
AsyncRetCodePtr
[Выход] Указатель на буфер, который будет содержать код возврата асинхронного API. Если AsyncRetCodePtr равно NULL, SQLCompleteAsync возвращает SQL_ERROR.
Returns
SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA или SQL_INVALID_HANDLE.
Diagnostics
Если SQLCompleteAsync возвращает SQL_SUCCESS, приложение должно получить возвратный код асинхронной функции из буфера, на который указывает AsyncRetCodePtr. Связанное SQLSTATE, если оно имеется, можно получить, вызвав SQLGetDiagRec с помощью HandleType SQL_HANDLE_STMT и оператора или HandleType SQL_HANDLE_DBC и дескриптора соединения. Эти диагностические записи связаны с асинхронной функцией, а не с этой функцией SQLCompleteAsync .
SQLCompleteAsync возвращает код, отличный от SQL_SUCCESS, чтобы указать, что SQLCompleteAsync вызывается неправильно. SQLCompleteAsync не будет публиковать диагностические записи в этом случае. Возможные коды возврата:
SQL_INVALID_HANDLE: Дескриптор, указанный HandleType и Handle , не является действительным.
SQL_ERROR: AsyncRetCodePtr — это NULL или асинхронная обработка не включена на дескрипте.
SQL_NO_DATA: В режиме уведомления асинхронная операция не выполняется или менеджер драйверов не уведомляет приложение. В режиме опросов асинхронная операция не выполняется.
Comments
В режиме асинхронной обработки на основе опросов AsyncRetCodePtr может быть SQL_STILL_EXECUTING, когда SQLCompleteAsync возвращает SQL_SUCCESS. Приложение должно продолжать опросы до тех пор, пока AsyncRetCodePtr не будет SQL_STILL_EXECUTING. В режиме асинхронной обработки на основе уведомлений AsyncRetCodePtr никогда не будет SQL_STILL_EXECUTING.