我要向后台3个表按T1,T2,T3的次序写入数据.为了数据完整性,我用3个事务以嵌套的形式处理.
说明:
m_pSet1: 指向T1的记录集指针.
m_pSet2: 指向T2的记录集指针.
m_pSet3: 指向T3的记录集指针.
程序的伪代码如下:m_pSet1->m_pDatabase->BeginTrans();  // 开始T1的事务
... ...     ... ...    // 一些插入数据表的操作if (插入成功)
{   
    // T1成功,开始T2的事务
    m_pSet2->m_pDatabase->BeginTrans();
    ... ...     ... ...    // 一些插入数据表的操作
    if (插入成功)
    {
        // T2成功,开始T3的事务
       m_pSet3->m_pDatabase->BeginTrans(); 
       ... ...     ... ...    // 一些插入数据表的操作
       if ( 插入成功)
       {
            // 提交T3的事务
            m_pSet3->m_pDatabase->CommitTrans(); 
        }
        // 回滚T3的事务
        m_pSet3->m_pDatabase->Rollback(); 
     }
     // 回滚T2的事务
     m_pSet2->m_pDatabase->Rollback();
}
// 回滚T1的事务
m_pSet1->m_pDatabase->BeginTrans(); 我的问题是:
(1) 这段代码本身是否可行(事务能不能嵌套)?
(2) 代码是可行的,这样三重嵌套的效率我们能否接受?
我想开发数据库应用的朋友经常会遇到这种问题. 给本人提点建军议吧.
谢了!