CDatabase::BeginTrans

BOOL BeginTrans ( );

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

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

Примечания

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

Осторожно   В зависимости от драйвера ODBC открытие набора записей перед вызовом BeginTrans может вызвать проблемы при вызове отката. Вы должны проверить конкретный драйвер, который вы используете. Например при использовании драйвера Microsoft Access, включены в 3.0 пакет драйвера Microsoft ODBC Desktop, должны учитывать для базы данных Jet требования вам не начать транзакцию на любой базе данных с открытым курсором. В классах баз данных MFC открытым курсором означает открытый объект CRecordset . Дополнительные сведения содержатся в разделе техническое примечание 68.

BeginTrans может также заблокировать записи данных на сервере, в зависимости от запрашиваемого параллелизма и возможности источника данных. За информацией о блокировки данных, обратитесь к статье набор записей: Блокировка записей (ODBC) в Руководстве по Visual C++ программист.

Определяемые пользователем операции описаны в статье Транзакций (ODBC) в Руководстве Visual C++ программист.

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

! ПРЕДУПРЕЖДЕНИЕ   Вызов BeginTrans снова без вызова метода CommitTrans или Rollback — ошибка.

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

Для получения дополнительных сведений о транзакциях, см. статью Транзакций (ODBC) в Руководстве Visual C++ программист.

Пример

В статье транзакции: выполнение транзакции в наборе записей (ODBC) в Руководстве по Visual C++ программист.

Обзор CDatabaseЧлены класса | Иерархическая схема

См. также CDatabase::CommitTrans, CDatabase::Rollback, CRecordset::CanTransact

Index