Функция JetRegisterCallback

Применимо к: Windows | Windows Server

Функция JetRegisterCallback

Функция JetRegisterCallback позволяет приложению настроить ядро СУБД для выдачи приложению уведомлений о конкретных событиях. Эти уведомления связаны с определенной таблицей и остаются в силе только до завершения работы экземпляра, содержащего таблицу, с помощью JetTerm.

Windows XP: JetRegisterCallback представлен в Windows XP.

    JET_ERR JET_API JetRegisterCallback(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_CBTYP cbtyp,
      __in          JET_CALLBACK pCallback,
      __in          void* pvContext,
      __out         JET_HANDLE* phCallbackId
    );

Параметры

sesid

Сеанс, используемый для этого вызова.

tableid

Курсор, используемый для этого вызова.

cbtyp

Битовая маска, состоящая из причин обратного вызова, по которым приложение хочет получать уведомления.

Чтобы создать эту битовую маску, просто или вместе допустимые причины обратного вызова из перечисления JET_CBTYP .

pCallback

Указатель функции на функцию обратного вызова для приложения.

pvContext

Указывает указатель контекста, который будет передан функции обратного вызова для приложения.

phCallbackId

Возвращает дескриптор, который позже можно использовать для отмены регистрации данной функции обратного вызова с помощью JetUnregisterCallback.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

JET_errClientRequestToStopJetService

Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService.

JET_errInstanceUnavailable

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errInvalidParameter

Один из предоставленных параметров содержал непредвиденное значение или значение, которое не имело смысла в сочетании со значением другого параметра. Эта ошибка будет возвращена JetRegisterCallback в указанных ниже случаях.

  • cbtyp равно нулю,

  • pCallback имеет значение NULL.

  • phCallbackId имеет значение NULL.

JET_errNotInitialized

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом.

JET_errSessionSharingViolation

Один и тот же сеанс нельзя использовать одновременно для нескольких потоков. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errTermInProgress

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, завершает работу.

При успешном выполнении указанный обратный вызов будет зарегистрирован для указанных причин обратного вызова в таблице, связанной с заданным курсором. Изменение состояния базы данных не произойдет.

В случае сбоя обратный вызов не будет зарегистрирован. Изменение состояния базы данных не произойдет.

Комментарии

Этот метод предоставляет приложению средства для связывания переменных обратных вызовов с таблицей в базе данных. Если приложение хочет связать сохраненные обратные вызовы с таблицей в базе данных, оно должно передать обратный вызов в JET_TABLECREATE с помощью JetCreateTableColumnIndex.

Требования

Требование Значение

Клиент

Требуется Windows Vista или Windows XP.

Сервер

Требуется Windows Server 2008 или Windows Server 2003.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

См. также:

JET_CALLBACK
JET_CBTYP
JET_ERR
JET_HANDLE
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetTerm
JetUnregisterCallback