我不认为如下,这有冲突吗? 
1 实际上四种操作有一个失败, 所有的ADD都回退到原来地方.换句语
说这种一致性可以在数据据中保证
2 至于VC中的对象, 它主要是处理界面. 如下:数据库连接
事务开始
1.ADD();
2.ADD();
3.ADD();
4.ADD();
事务结束
数据库断接 

解决方案 »

  1.   

    我的设计是在每个ADD()中都是从连接池中取数据库连接,更新表,释放数据库连接。不知您说的ADD()方法是怎样实现的呢?
      

  2.   

    "我的设计是在每个ADD()中都是从连接池中取数据库连接,更新表,释放数据库连接"这就叫面向对象的设计吗?恕我无知。
    我一般把数据库的连接和释放做成全局的,至少该是如freelybird般。
      

  3.   

    成员函数:
    BeginAdd(...);
    Add(...);
    EndAdd(bool bCommit);
    你在BeginAdd()中,做连接和开始事务,
    Add()中添加数据,
    EndAdd()中决定了你的操作是被递交还是回滚。