Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Соответствие
Версия, представленная: 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);
Arguments
pContex
Указатель на структуру данных, определенную диспетчером драйверов. Значение передается драйверу через SQLSetConnectAttr(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.
Diagnostics
SQLAsyncNotificationCallback может возвращать SQL_ERROR для следующих двух ситуаций (они указывают на проблему реализации в драйвере или диспетчере драйверов.
| Ошибка | Description |
|---|---|
| Подключение или запрос не запрашивали уведомления. | |
| Недопустимый дескриптор | Драйвер передал недопустимый дескриптор, что привело к сбою валидационных тестов менеджера драйверов. |