Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Соответствия
Представлена версия: соответствие стандартам ODBC 3.8: нет
Сводка
SQLCompleteAsync можно использовать для определения завершения асинхронной функции с помощью обработки на основе уведомлений или опроса. Дополнительные сведения об асинхронных операциях см. в разделе "Асинхронное выполнение".
SQLCompleteAsync реализуется только в диспетчере драйверов ODBC.
В режиме асинхронной обработки на основе уведомлений sqlCompleteAsync необходимо вызвать после вызова диспетчера драйверов объекта события, используемого для уведомления. SQLCompleteAsync завершает асинхронную обработку, а асинхронная функция создаст код возврата.
В режиме асинхронной обработки на основе опроса SQLCompleteAsync является альтернативой вызову исходной асинхронной функции без необходимости указывать аргументы в исходном асинхронном вызове функции. SQLCompleteAsync можно использовать независимо от того, включена ли библиотека курсоров ODBC.
Синтаксис
SQLRETURN SQLCompleteAsync(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
RETCODE * AsyncRetCodePtr);
Аргументы
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.
Возвраты
SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA или SQL_INVALID_HANDLE.
Диагностика
Если SQLCompleteAsync возвращает SQL_SUCCESS, приложение должно получить возвращаемый код асинхронной функции из буфера, на который указывает AsyncRetCodePtr. Связанный SQLSTATE, если таковой есть, можно получить путем вызова SQLGetDiagRec с обработчиком SQL_HANDLE_STMT и дескриптором инструкции или дескриптором дескриптора SQL_HANDLE_DBC и дескриптором соединения. Эти диагностические записи связаны с асинхронной функцией, а не этой функцией SQLCompleteAsync .
SQLCompleteAsync возвращает код, отличный от SQL_SUCCESS, чтобы указать, что SQLCompleteAsync не вызывается правильно. SQLCompleteAsync не будет публиковать диагностические записи в этом случае. Возможные коды возврата:
SQL_INVALID_HANDLE. Дескриптор, указанный HandleType и Handle, не является допустимым дескриптором .
SQL_ERROR. AsyncRetCodePtr имеет значение NULL или асинхронная обработка не включена в дескриптор.
SQL_NO_DATA. В режиме уведомлений асинхронная операция не выполняется или диспетчер драйверов уведомил приложение. В режиме опроса асинхронная операция не выполняется.
Комментарии
В режиме асинхронной обработки на основе опроса AsyncRetCodePtr может быть SQL_STILL_EXECUTING, когда SQLCompleteAsync возвращает SQL_SUCCESS. Приложение должно продолжать опрос до тех пор, пока AsyncRetCodePtr не SQL_STILL_EXECUTING. В режиме асинхронной обработки на основе уведомлений AsyncRetCodePtr никогда не будет SQL_STILL_EXECUTING.