Функция JetBeginTransaction2
Применимо к: Windows | Windows Server
Функция JetBeginTransaction2
Функция JetBeginTransaction2 позволяет сеансу ввести транзакцию и создать новую точку сохранения. Эту функцию можно вызывать несколько раз в одном сеансе для создания дополнительных точек сохранения. Эти точки сохранения можно использовать для выборочного хранения или отмены изменений в базе данных.
JET_ERR JET_API JetBeginTransaction2(
__in JET_SESID sesid,
__in JET_GRBIT grbit
);
Параметры
sesid
Сеанс, используемый для этого вызова.
grbit
Группа битов, содержащая параметры, которые будут использоваться для этого вызова, которые включают ноль или более следующих элементов.
Значение |
Значение |
---|---|
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 |
Не удается запустить новую транзакцию, так как сеанс уже находится на максимальной глубине точки сохранения, допустимой ядром СУБД. |
При успешном выполнении указанный сеанс будет находиться внутри транзакции. Если сеанс ранее был внутри транзакции, будет создана новая точка сохранения.
При сбое транзакционный режим сеанса останется неизменным. Изменение состояния базы данных не произойдет.
Комментарии
Дополнительные сведения о работе транзакций см. в разделе JetBeginTransaction.
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
См. также:
JET_ERR
JET_GRBIT
JET_SESID
JetBeginTransaction
JetCommitTransaction
JetGetSystemParameter
JetResetSessionContext
JetRollback
JetSetSessionContext
Системные параметры