http://hi.baidu.com/broland/blog/item/0c9bc13e8dc345c57d1e7117.html
用Delphi创建COM+ 应用服务器(一)
一、创建实体对象
步骤一:
New->Other->ActiveX->ActiveX Library
如图:
步骤二:
New->Other->Multitier->Transactional Data Module
如图:
步骤三:
选择Ok 以后会弹出如下对话框:
此时你需要做的是:
CoClass Name 项输入组件的名字,
Threading Model项为组件的线程模型,一般系统默认即可。
Transaction Model 项为组件的事务模型。在实体组件中一般选支持事务,即:Support Transactions。
例如:
步骤四:
接着在Transctional Data Module 里拖放一个DataSetProvider
如下:
DataSetProvider的作用是为客户端提供数据。而把客户端的数据传到应用服务器则用olevariant这个数据类型。
Adoconnection、Adoquery 等数据访问组件会由一个专门的数据访问类来管理。
步骤五:
需要在数据模块的几个事件里对DataSetProvider的DataSet属性做初始化:
OnActivate事件:
FExample.FAccess.FADOConnection.Open;
OnCreate事件:
FExample:=TExample.Create(self);
FExample.Faccess.SQL:='SELECT TOP 100 * FROM Country';
FExample.Faccess.Query;
Datasetprovider1.DataSet:=FQuote.Faccess.ADOQuery;
OnDeactivate 事件:
FExample.FAccess.FADOConnection.Close;
OnDestroy 事件:
FExample.Free;
用Delphi创建COM+ 应用服务器(二)
步骤六:
接着在类型编辑器中声明组件的接口方法,如图:
方法的参数在右边的编辑框中定义:
刷新后,系统自动会在单元文件中产生方法的代码框架:


就有上面的update方法的框架,Example是你自己定义的业务类。
步骤七:
接下来就要把组件安装到系统中,在Run菜单下有个 install com+ objects 选项。
弹出一对话框:
勾选要安装的组件,选择套件或者新建一个套件。如下:
1.选择已有的套件名称:
2.新建套件:
点击Ok后系统就会把你的组件安装到“组件服务”里了。
(组件服务是win2K管理工具)
这样一个简单的组件就完成了。
用Delphi创建COM+ 应用服务器(三)
前面讲了建立com+组件的基本过程,但是还有许多的问题等待着大家去摸索,去发现。在这里我只实现数据库的基本操作,比如:插入,删除,更新,简单查询等等。但愿能起个引导如何实做COM+服务器的作用。基本理论知识这方面的资料也有很多,我建议大家有机会看看李维先生著作的两本书:《Delphi 5.x ADO/MTS/COM+ 高级程序设计篇》和《Delphi 5.x 分布式多层应用 系统篇》。
问题:
1、 客户端与应用层是怎么传送数据的呢?
2、 简单数据以及数据记录集传送有什么区别吗?
3、 在应用服务器层又怎么解析传送的数据呢?
4、 应用服务器是怎么跟后台数据库连接的呢?
。。。。。。
一、系统框架:

二、各层主要的功能:
1、 客户端:
主要是界面上处理,同时调用中间层的组件接口方法。在这里有一个“窗体基类”,派生了一个“明细窗体基类”。
完成通用操作以后,在下面的具体子类中只要调用不同的接口方法即可。
各个窗体的代码看起来很相似。熟了以后,你只要会复制、粘贴操作就行了。(到了这时我会觉得很无趣,不知道大家这么想)
附:



2、 查询组件:
接收到客户端的一些查询条件,通过业务组件里的数据提供者得到数
据以后,返回给客户端。具体代码如下:

3、 更新组件: 完成对插入,删除,更新等数据操作的接口方法。

4、 业务组件:
主要是管理实体与数据表之间的映射关系。(实体基类略)
5、 数据访问组件:
主要封装了一些数据库访问组件,及一些方法。(相关类见http://expert.youkuaiyun.com/Expert/topic/2065/2065430.xml?temp=.4066889)