同题

解决方案 »

  1.   

    remote data module在建立多层结构时使用在中间层。
    data module是在一般情况下(client端)放置数据组件
    以上两种不能通用,中间层只能用remote的。
    trancactional data module没有用过。
      

  2.   

    但是我在建立com+对象的时候,我分别试过在com+对象中建立data module和remote data module,而且在客户端建立com+对象取模块中的数据,都能正常取得,为什么呢?
      

  3.   

    Remote Datamodule只是实现了IAppServer接口的Data ModuleTransaction Datamodule也只是实现了IObjectControl接口的RemoteDataModuleDataModule当然也可以应用在服务端,只是要自己做一些工作
      

  4.   

    你需要与数据库连接时都可以用DataModule
    另外两种一般用于服务器端
      

  5.   

    Remote Datamodule和Transaction Datamodule我都用过,可后者我一般与ActiveXDll一起用,用来封装控件,生成DLL
              前者单独用,普通用法,生成EXE从来没想过有什么区别,一直就这么用的,惭愧呀........
      

  6.   

    DataModule是一个基本的不可视控件容器,因此我们主要用它来放置数据访问组件,例如Database Connection, Table, Query, Dataset,Data Source等等。DataModule一般没有特殊的使用要求,就当作一个常规容器就可以了。RemoteDataModule实现了IAppServer接口,通常用于使用了MIDAS解决方案的分布式应用程序服务器中。TransactionalDataModule比RemoteDataModule更进一步,适应COM+应用程序的开发,实现了IObjectControl等一系列COM+相关的接口。顾名思义,TransactionalDataModule提供了对COM+事务(Transaction)的支持。因此,DataModule作为不可视组件可用于各种情况,RemoteDataModule适用于对事务无特殊要求或自行控制事务的常规MIDAS分布式应用程序服务器中,而TransactionalDataModule则主要用于开发COM+应用。
      

  7.   

    “DataModule作为不可视组件可用于各种情况”应为“DataModule作为不可视组件容器可用于各种情况”。另外,上述3种模块只有TransactionalDataModule可以直接登记为COM+组件并利用COM+的数据连接池、对象池、分布式事务协调等特色功能。
      

  8.   

    总结如下:1、如果只需要一个容器,而不需要通过接口对模块进行交互操作,可以使用DataModule;2、如果需要通过接口对模块进行交互操作,但不需要关键的分布式计算特性(如事务协调、池化),可以使用RemoteDataModule;3、如果需要通过接口对模块进行交互操作且需要利用COM+提供的分布式计算特性。建议使用TransactionalDataModule.
      

  9.   

    明白了,非常感谢 Miracle() 和TOMWLD(笑天)