Поделиться через


Функция SQLAsyncNotificationCallback

Соответствия
Версия, представленная: ODBC 3.8

Соответствие стандартам: нет

Сводка
SQLAsyncNotificationCallback позволяет драйверу вернуться к диспетчеру драйверов, когда существует определенный прогресс для текущей асинхронной операции после возвращения драйвера SQL_STILL_EXECUTING. SQLAsyncNotificationCallback может вызываться только драйвером.

Драйверы не вызывают SQLAsyncNotificationCallback с именем функции SQLAsyncNotificationCallback. Вместо этого диспетчер драйверов передает указатель функции драйверу в качестве значения атрибута SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK или SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK соответствующего дескриптора соединения или дескриптора инструкции соответственно. Разные дескрипторы могут назначаться различными значениями указателя функции. Тип указателя функции определяется как SQL_ASYNC_NOTIFICATION_CALLBACK.

SQLAsyncNotificationCallback является потокобезопасной. Драйвер может использовать несколько потоков, вызывающих SQLAsyncNotificationCallback одновременно на разных дескрипторах.

Синтаксис

typedef SQLRETURN (SQL_API *SQL_ASYNC_NOTIFICATION_CALLBACK)(  
   SQLPOINTER pContex,   
   BOOL fLast);  

Аргументы

pContex
Указатель на структуру данных, определенную диспетчером драйверов. Значение передается драйверу через SQLSet Подключение Attr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) или SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT). Драйвер не имеет доступа к значению.

fLast
Используется драйвером для указания того, что вызов функции обратного вызова является последним для текущей асинхронной операции. Драйвер возвращает код возврата, отличный от SQL_STILL_EXECUTING, когда диспетчер драйверов снова вызывает функцию. Диспетчер драйверов может использовать эти сведения, например, чтобы заранее сообщить приложению, что асинхронная операция завершится.

Если Handle не является допустимым дескриптором типа, заданного HandleType, SQLCancelHandle возвращает SQL_INVALID_HANDLE.

Возвраты

SQL_SUCCESS или SQL_ERROR.

Диагностика

SQLAsyncNotificationCallback может возвращать SQL_ERROR для следующих двух ситуаций (они указывают на проблему реализации в драйвере или диспетчере драйверов.

Ошибка Описание
Подключение или оператор не запрашивал уведомление.
Недопустимый дескриптор Драйвер прошел недопустимый дескриптор, который завершился сбоем внутренних тестов проверки диспетчера драйверов.

См. также

Асинхронное выполнение (метод опроса)