如在一台远程服务器上有两个COM+组件,在客户机上调用两个COM+组件,并且实现两个COM+操作在同一个事务中
比如远程服务器有COM+组件1,实现对数据库A操作,插入一调记录,远程服务器有COM+组件2,实现对数据库
A操作,删除一条记录。
在客户段调用分布式事务,将COM+组件1操作,跟COM+组件2操作放在一起进行,要么操作都成功,要么操作都失败 

解决方案 »

  1.   

    事务过程来选择是1还是2
    是1就insert
    是2就delete
      

  2.   

    服务端进行2个COM组件的事务处理.我觉得在服务端处理,如果2个COM返回的操作为TRUE,THEN COMMIT, ELSE ROOLBACK
    继续关注其他解决办法.
      

  3.   

    BEGIN DISTRIBUTED TRANSACTION
    --sql语句
    COMMIT TRANSACTION
      

  4.   

    没研究过..有个想法..可不可以直接对数据库进行事务操作,
    比如当com1执行时调用一个脱离于com1和com2的类来开始事务,
    当出现异常时,再调用这个类的回滚方法,最好提交也写在这个单独的类里.
    纯属个人突发奇想.
      

  5.   


    using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
    {
      //---调用COM1的操作
      //---调用COM2的操作
      ts.Complete();
    }瞎猜的,不知行不行