CDatabase::BeginTrans

调用此成员函数以连接的数据源开始事务。

BOOL BeginTrans( );

返回值

非零,则调用成功和更改仅进行手动;否则为0。

备注

事务包含一个或多个调用。CRecordset 对象的 AddNewEditDeleteUpdate 成员函数。在开始事务之前,必须已连接到 CDatabase 对象到数据源通过调用其 OpenExOpen 成员函数。结束事务,调用 CommitTrans 接受对数据源中的所有更改(并带有它们)或调用 回滚 中止整个事务。在打开任何记录集包括在事务和尽可能接近实际更新操作尽可能后,调用 BeginTrans

警告说明警告

根据ODBC驱动程序,打开记录集在调用 BeginTrans 之前会造成问题,在调用 Rollback时。您应检查要使用的特定驱动程序。例如,使用时,Microsoft ODBC驱动程序包桌面附带的Microsoft Access驱动程序3.0,必须考虑Jet数据库引擎的要求时不应开始在有一个打开游标的任何数据库的事务。在MFC数据库选件类,一个打开的光标表示一个打开 CRecordset 对象。有关更多信息,请参见 技术说明68

BeginTrans 基于请求的并发和数据源的功能可能会锁定服务器上的数据记录。有关锁定数据的信息,请参见文章 记录集:锁定记录(odbc)

用户定义的事务在文章 事务(odbc)上解释。

BeginTrans 建立事务序列可滚动的状态(取消)。若要建立回滚的新状态,使所有当前事务,然后再次调用 BeginTrans

警告说明警告

未经调用 CommitTransRollback 就再次调用 BeginTrans 是错误的。

调用 CanTransact 成员函数确定您的驱动程序是否支持特定数据库的事务。还应调用 GetCursorCommitBehaviorGetCursorRollbackBehavior 光标保存的支持。

有关事务的更多信息,请参见文章 事务(odbc)

示例

参见中的文章 事务:在记录集中执行事务(odbc)

要求

Header: afxdb.h

请参见

参考

CDatabase选件类

层次结构图

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact