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


Функция JetBeginTransaction3

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

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

Функция JetBeginTransaction3 появилась в операционной системе Windows 8.

JET_ERR JET_API JetBeginTransaction3(
  __in          JET_SESID sesid,
  __in          int64 trxid,
  __in          JET_GRBIT grbit
);

Параметры

Sesid

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

trxid

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

гбит

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

Значение

Значение

JET_bitTransactionReadOnly

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

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

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

Код возврата

Description

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

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

Этот код возврата возвращается версиями Windows, начиная с Windows XP.

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

JET_errTermInProgress

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

JET_errTransTooDeep

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

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

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

Замечания

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

Требования

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

Клиент

Требуется Windows 8.

Сервер

Требуется Windows Server 2012.

Верхний колонтитул

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

Библиотека

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

DLL

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

См. также

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