to haor:你哪里不明白呢?我告诉你,好吗?

解决方案 »

  1.   

    SetComplete:当MTS对象的方法执行完毕之后,如果时成功执行完毕,那么MTS对象可以调用IObjectContext接口的SetComplete方法,此时MTS执行环境便会尝试Commint这个方法进行修改,并释放MTS对象。
    SetAbort:与SetComplete()方法类似,这个方法用于通知MTS控件的工作已经完成,不再需要保留状态信息。不过调用这个方法还表明控件出错或处于一种不确定状态,所有当前事务都必须被放弃。同时MTS对象被释放
    至于ADO的你可以察看MSDN,不过好像两者之间是不同的,没有太多类比性。
      

  2.   

    (2)可以在操作两个或者两个以上的DBMS的时候自动commit或者abort。
    只要你调用了objectcontext.setabort,不需要任何cnn.rollback之类的语句就可以让数据库自动撤销修改,该特性由MSDTC支持和维护(目前支持大部分数据库,包括MSSQL,informix,oracle....),设置可以做到在setabort的时候自动删除产生的TXT结果文件(需要使用补偿资源管理器(COM+ only)+自己写部分代码)。
    如果是大型商务运用建议使用(2),移植方便,而且还有许多额外的好处,比如QC(COM+ only)。
      

  3.   

    To bucher:看来你开发程序的时候用(2)吧。
      

  4.   

    To bucher:如果你使用objectcontext很熟练,麻烦你进入“关于ObjectContext对象和ObjectControl对象的使用问题”继续讨论,这里我一定给你分,放心好了。
      

  5.   

    作为一个防止出错的建议: 当使用COM+/MTS时, 不要使用ADO 或SQL 的transaction function. 这只是能够更清楚的知道code level的transaction会在何时commit 或abort. 其他并无影响.
      

  6.   

    GoldenLion,看见你真是好,我知道你是一个真正的高手,连haor都很佩服你,快帮帮我,好吗?我KENKEN一共有4条问题,谢谢你啦。
      

  7.   

    这个问题有TechnoFantasy、bucher、GoldenLion三位高手解答,各得20、20、10分吧。