CDatabase::BeginTrans

BOOL BeginTrans();

返回值:
如果调用成功并且只手工提交改变,则返回非零值,否则为0。

说明:
调用这个成员函数,可以开始连接数据源的事务。一个事务包含一个或更多的CRecordset对象的AddNew,Edit,Delete和Update成员函数。
开始事务之前,CDatabase对象必须已经通过调用OpenEx或Open成员函数与数据源相连接。要结束事务,可调用CommitTrans接受对数据源的所有变化(并且执行它们),或者调用Rollback中止整个事务。在打开事务中包括的所有记录集后调用BeginTrans,并且尽可能接近实际更新操作。
警告:
依赖于使用的ODBC驱动程序,调用Rollback时,在调用BeginTrans之前记录集可能出现问题。应该检查使用的指定驱动程序。例如使用Microsoft ODBC Desktop Driver Pack 3.0包括的Microsoft Access驱动程序时,必须说明Jet数据库引擎的要求,不应该在有打开的游标的任何数据库上开始事务。在MFC数据库类中,打开的光标意味着一个打开的CRecordset对象。有关的更多信息,请参阅“技术指南68”。
根据要求的并发性和数据源的功能,BeginTrans还可能封锁服务器上的数据记录。有关封锁数据的信息,请参阅联机文档“Visual C++程序员指南”中的“记录集:封锁记录(ODBC)”。
联机文档“Visual C++程序员指南”中的“事务(ODBC)”解释用户定义的事务。
BeginTrans建立了以后事务可以回滚(翻转)的状态。要建立回滚的新状态,可确认任何当前事务,然后再次调用BeginTrans。
警告:
没有调用CommitTrans或Rollback就再调用BeginTrans是一个错误。
调用CanTransact成员函数,可以确定驱动程序是否支持给定数据库的事务。你还应该调用GetCursorCommitBehavior和GetCursorRollbackBehavior来确定对游标保留的支持。
有关事务的更多信息,请参阅联机文档“Visual C++程序员指南”中的“事务(ODBC)”。

示例:
请参阅联机文档“Visual C++程序员指南”中的“事务:执行记录集中的事务(ODBC)”。

请参阅:
CDatabase::CommitTrans, CDatabase::Rollback, CRecordset::CanTransact