我数据库方面的知识掌握的很少,希望能得到大家的帮助我用的是vc 6.0 oracle ADO, 碰到的问题是这样的在程序运行时输出了以下的错误记录:在某事物中的列入已存在
无法在此会话中启动更多的事务我查了一些资料大概找到了问题的原因,应该是在一个m_pConnection->BeginTrans和m_pConnection->CommitTrans对中插入了其它的事物,因为是多线程环境,所以这种事情很有可能发生。而且一般发生在RollbackTrans时。
程序中有类似下面这样的代码:// 线程1:
try
{
    m_pConnection->BeginTrans();    // 。    m_pConnection->CommitTrans();
}
catch ()
{
    m_pConnection->RollbackTrans();
}
// 线程2:
try
{
    m_pConnection->BeginTrans();    // 。    m_pConnection->CommitTrans();
}
catch ()
{
    m_pConnection->RollbackTrans();
}
我想请问大家,应该怎样避免这种事情?或者有没有什么方法能保证在一个BeginTrans和CommitTrans之间不会插入其它的事物非常感谢