Функция 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
Системные параметры