我在做com+时,当选Transactional Data Module时,系统会弹出一个对话框,其中有一个Transaction model:的支持事务模型的选项。其中有Requires a transaction和Supports transactions两个选项,请问这两者的概念是什么?有什么区别?我用前者做的服务程序就不行,用后者就可以。为什么?

解决方案 »

  1.   

    你是用ADO连接Oracle数据库吧?我估计这是一个ADO对Oracle支持得不好的地方,在要使用COM+事务的时候就要出错,在一般程序中却是好的。用ADO连接SQL Server数据库就没有这个问题,或者用BDE连接Oracle数据库也没有这个问题。关于事务类型,“需要事务”表示该组件需要一项事务来运行,如果该组件当前不在某个事务中,COM+就为它建立一个事务;“支持事务”表示该组件将在一项事务中运行,但也可以在没有事务的情况下运行。详情请看李维《ADO/MTS/COM+ 高级程序设计篇》第6章。