Функция JetBeginTransaction2

Область применения: Windows | Сервер Windows

Функция JetBeginTransaction2

Функция JetBeginTransaction2 заставляет сеанс ввести транзакцию и создать новую точку сохранения. Эту функцию можно вызывать несколько раз в одном сеансе для создания дополнительных точек сохранения. Эти точки сохранения можно использовать для выборочного хранения или отмены изменений в базе данных.

    JET_ERR JET_API JetBeginTransaction2(
      __in          JET_SESID sesid,
      __in          JET_GRBIT grbit
    );

Параметры

sesid

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

гбит

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

Значение

Значение

JET_bitTransactionReadOnly

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

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

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

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

JET_errTermInProgress

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

JET_errTransTooDeep

Не удается запустить новую транзакцию, так как сеанс уже находится на максимальной глубине точки сохранения, допустимой ядром СУБД.

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

При сбое состояние транзакций сеанса останется неизменным. Изменение состояния базы данных не произойдет.

Remarks

Дополнительные сведения о работе транзакций см. в разделе JetBeginTransaction.

Требования

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

Клиент

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

Server

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

Header

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

Библиотека

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

DLL

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

См. также:

JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetGetSystemParameter
JetResetSessionContext
JetRollback
JetSetSessionContext
Системные параметры