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


CDatabase::BeginTrans

Эта функция-член вызывается с целью запуска транзакции установления соединения с источником данных.

BOOL BeginTrans( );

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

Ненулевой если вызов завершился успешно и зафиксируйте изменение только вручную; в противном случае – значение 0.

Заметки

Транзакция состоит из одного или нескольких вызовов AddNew, Изменить, Удалить и функции-члены ОбновитьCRecordset объект.Перед началом транзакции, объект CDatabase должен быть уже подключения к источнику данных путем вызова его функцию-член OpenEx или Открыть.Для завершения транзакции вызовите CommitTrans, чтобы принять все изменения в источнике данных (и внесения их за пределами) или вызвав откат для отмены всей транзакции.Вызов BeginTrans после открытия любые наборы записей, входящую в транзакцию и ближайшее к фактическим операции обновления, как возможный.

Предупреждающее замечаниеВнимание

В зависимости от конкретного драйвера ODBC, открытие набора записей перед вызовом BeginTrans может вызвать проблемы при вызове Откат.Нужно вернуть конкретный драйвер использовании.Например, при использовании драйвера Microsoft Access, включенного в пакете 3,0 драйвера рабочего стола Microsoft ODBC, необходимо определить требование к ядру СУБД jet, что не следует начать транзакцию в любой базе данных, которая содержит открытый курсор.В классах баз данных MFC, открытый курсор означает открытый объект CRecordset.Дополнительные сведения см. в разделе Техническая примечание 68.

BeginTrans также может блокировать записи данных на сервере, в зависимости от требуемого с параллелизмом и возможностей источника данных.Дополнительные сведения о блокировать сведения см. в статье Набор записей. Блокировка записей (ODBC).

Определяемые пользователем транзакции описаны в статье транзакция (ODBC).

BeginTrans устанавливает состояние, к которому последовательность транзакций можно откатить (инвертированный).Чтобы задать новое состояние откатов, устраните любые текущую транзакцию, а затем BeginTrans вызова.

Предупреждающее замечаниеВнимание

Повторный вызов метода BeginTrans, не сопровождаемый вызовом CommitTrans или Rollback, приведет к ошибке.

Вызовите функцию-член CanTransact, чтобы определить, поддерживает ли драйвер транзакций для конкретной базы данных.Кроме того, необходимо вызвать GetCursorCommitBehavior и GetCursorRollbackBehavior для определения поддержки для сохранения курсора.

Дополнительные сведения о транзакциях см. в статье транзакция (ODBC).

Пример

См. статью транзакция: Выполнение транзакции в наборе записей (ODBC).

Требования

Header: afxdb.h

См. также

Ссылки

Класс CDatabase

Диаграмма иерархии

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact