CDatabase::BeginTrans

BOOL BeginTrans ( );

Значення, яке повертається

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

Зауваження

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

Застереження   Залежно від того, драйвер ODBC відкрити набір записів перед викликом BeginTrans може спричинити проблеми при дзвінках відкат. Ви повинні перевірити певний драйвер, що використовується. Наприклад, використовуючи драйвер Microsoft Access, включені в Microsoft ODBC робочого драйвера Pack 3.0, ви повинні пояснити Jet database engine вимоги, що ви не повинні почати операцію на будь-якій базі даних, який має відкриті курсор. MFC класах, бази даних відкрити курсор означає відкрити об'єкт CRecordset . Докладніше перегляньте технічну Примітка 68.

BeginTrans також може заблокувати записів даних на сервері, залежно від того, запитаний паралелізм і можливостей джерела даних. Відомості про блокування даних, перегляньте статтю набір записів: блокування записів (ODBC) в Visual C++ програміста керівництво.

У статті пояснюються користувача угоди - Транзакцій (ODBC) в Visual C++ програміста керівництво.

BeginTrans встановлює державою, в якій послідовності операцій можна відновлено (назад). Встановити новий стан для rollbacks, зробити будь-який поточної операції, а потім знову закликаю BeginTrans.

! ПОПЕРЕДЖЕННЯ   Виклик BeginTrans знову без виклику CommitTrans або відкат є помилка.

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

Щоб отримати додаткові відомості про угоди, перегляньте статтю - Транзакцій (ODBC) в Visual C++ програміста керівництво.

Приклад

У статті угоди: проведення транзакції набір записів (ODBC) в Visual C++ програміста керівництво.

Огляд CDatabaseЧлени класу | Ієрархічна діаграма

Дивіться також CDatabase::CommitTrans, CDatabase::Rollback, CRecordset::CanTransact

Index