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