MIDAS服务器程序包括:TDataSet;TProvider;TDatabase;TSession

TRemoteDataModule
TRemoteDataModule是TDataModule的后代,其用法也大致相同。在服务器程序中,可将远程数据模块作为所有非可视组件的容器使用。TRemoteDataModule实现了IAppServer接口,只需向标准的应用程序中添加该类的对象,即可实现需要向客户程序提供的功能。
要创建MIDAS服务器,首先在Delphi中启动一个标准的应用程序工程。从New Items对话框的Multitier属性页中,向工程添加一个远程数据模块对象。创建远程数据模块的向导过程如下所示(见图15.2),其中需要选定CoClass的名字、实例化方法以及线程模型。提供了这些信息后,Delphi将创建类型库和新的远程数据模块子类,该子类由TRemoteDataModule子类化而来,并继承了所定义的CoClass接口。
MIDAS应用服务器是一个自动化服务器。可以向接口添加一些功能,并在远程数据模块中进行实现(参见15.2节"对MIDAS服务器进行查询",其中的例子实现了一个接口,返回服务器可以访问的所有表名)。远程数据模块将实现UpdateRegistry方法,该方法负责在第一次运行程序时向Windows NT注册服务器。
无须向远程数据模块添加额外的功能,但需要添加一些组件,至少包括一个TProvider和一个TDataSet组件。添加TDatabase和TSession组件也很有用。在Delphi专业版中引入了数据集、数据库和会话组件,它们与用于建立两层数据库应用程序的组件是相同的。TProvider与MIDAS一同发布,包括TDataSetProvider和TXMLTransformProvider两种组件。
 
图15.2  远程数据模块的向导过程将子类化TRemoteDataModule
并生成类型库,用作COM服务器的接口
扼要地重新叙述一下, 一个MIDAS服务器程序包括一个TDataSet组件(如TTable或TQuery),一个TProvider组件(如TDataSetProvider组件),一个TDatabase组件和TSession组件。下面我们简要地对这些组件重新回顾一下。
TDataSetProvider
TDataSetProvider由TBaseProvider子类化而来。数据集提供者处于客户与服务器程序之间,它是客户数据集的中介。提供者维护了一个对数据源数据集的引用以及Options特性,该特性描述了如何使用一个特定的数据集提供者。
要使用数据集提供者,需要将DataSet特性赋值为TNestedTable、TQuery、TTable或TStoredProcedure等类型的对象。要使TClientDataSet类型的对象能够与数据集提供者通信,需要将Exported特性设置为True。Options特性有14个可用的值。例如,要使数据集提供者能够接收动态SQL语句,需要向Options集合添加poAllowCommandText值。这项工作可以在设计时利用Object Inspector完成。对于TProviderOptions的完整的解释,可以看一下Delphi的帮助文档。本章稍后建立例子程序时,我们将针对一些特定的设置进行讨论。
TDatabase
向远程数据模块添加一个TDatabase。数据库组件引用了BDE(Borland数据库引擎)别名或物理上的数据库。如果存在已定义的别名,可以将其赋值给TDatabase.AliasName特性。Connected特性打开或关闭数据库。DatabaseName特性指定与数据库关联的名字。如果DatabaseName特性是已存在的BDE别名,则无须将该值赋予数据库组件的AliasName或DriverName特性。要定义新的数据库别名,只需添加DatabaseName和DriverName特性值,将AliasName特性置为空即可。
TDatabase.Params特性类型为TStrings,用于定义一些形如name = value的参数对,以便传递给要连接的数据库。TDatabase.SessionName特性是一个TSession组件的名字。
TSession
TSession组件用于管理数据库连接。多线程的数据库应用程序是其主要用途之一。将AutoSessionName设置为True,可以保证服务器的每个实例都具有惟一的会话名;在多个客户与多个TRemoteDataModule对象实例进行连接时,这是必需的(更多的信息请参见TClassInstance和TComponentFactory类)。
TDataSet
TDataSet是TTable、TQuery、TNestedTable和TStoredProcedure的祖先类。对于TDataSetProvider类的DataSet特性来说,上面提到的每个数据集组件都是可用的数据源(关于数据访问组件的完整细节,请参见第13章)。
TDataSetProvider
TDataSetProvider是MIDAS客户与MIDAS服务器之间的桥梁。客户由TDataSetProvider对象得到数据,而该对象则由TDataSet对象得到数据。而客户使用TDataSetProvider对象对数据库进行更新。
要使TClientDataSet对象从MIDAS服务器得到数据,必需设置DataSet、Exported和ProviderName特性。上面提到过,DataSet特性向TDataSetProvider对象提供数据库中的数据。而只有在Exported特性的值是True的情况下,客户才能连接到数据集提供者,TClientDataSet.ProviderName特性的值需要设置为提供者的名字。下面列出的特性值示范了在远程数据模块中四个关键组件的基本设置(请注意,在列表中使用了TTable,实际上也可使用其余的三种数据集组件)。
TDatabase.DatabaseName = DatabaseName
Tdatabase.SessionName = SessionName
Session.AutoSessionName = True
Tsession.SessionName = SessionName
TTable.DatabaseName = DatabaseName
TTable.SessionName = SessionName
TTable.TableName = TableName
TDataSetProvider.Table = TDataSet
TDataSetProvider.Exported = True
TDataSetProvider.Name = ProviderName
当TClientDataSet.Active特性设置为True时,数据库、数据集和会话将连接到所引用的数据集。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值