这里的伪代码:
RecordSetA.Open(&DB);
try
{
DB.m_WorkSpace.begintrans();
RecordSetA.Close();
DB.m_WorkSpace.Commit();
}
catch(...)
{
DB.m_WorkSpace.RollBack();
}
我可以毫无问题地在交易中执行RecordSetA.Move(),RecordSetA.Find()
。但是,如果我在事务中关闭此记录集,它在执行RollBack()或Commit()时会发出DAO错误:" You tried to commit or rollback a transaction without first beginning a transaction
"。
我知道在ODBC中,不应该在事务(https://msdn.microsoft.com/en-us/library/sx0e0xze.aspx)内执行Close(),但为什么我不能在DAO中执行此操作?