打印本文 打印本文 关闭窗口 关闭窗口
多层数据库开发三:创建多层应用程序
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3499  更新时间:2009/4/23 18:30:19  文章录入:mintao  责任编辑:mintao
End;
在应用服务器上,一般要使用基于BDE的数据集构件来引入数据,TDataSetProvider或TProvider构件的DataSet属性指定此数据集构件。不过,默认情况下,TDataSetProvider或TProvider构件能够用动态生成的SQL语句直接与远程的数据库服务器通讯,而不需要借助于基于BDE的数据集构件,这样做的好处是减少了一个环节。
  不过,TDataSetProvider或TProvider构件有时候也需要直接向应用服务器上的数据集构件申请更新数据,因为应用服务器上使用的有可能不是基于BDE的数据集,而是TClientDataSet或自定义的数据集。这时候需要把ResolveToDataSet属性设为True。
  如果能确定应用服务器不需要用到BDE,最好用TDataSetProvider构件而不是TProvider构件,TDataSetProvider不需要依赖BDE, 有利于发布和安装应用服务器。
3.12 多层体系结构下的事务
  当客户程序向应用服务器申请更新数据,TDataSetProvider或TProvider构件会自动把更新数据的例程加上一层事务的外套,换句话说,就是处于事务的控制之下。如果出错的记录数没有超过MaxErrors参数,就向远程数据库服务器正式提交此次事务,否则就滚回。
  为了更好地支持事务,可以在应用服务器端用TDatabase构件来管理数据库的连接和事务,它的用法与两层体系结构一样。
  如果在应用服务器端使用MTS,就可以获得更强大的事务处理能力。MTS事务可以延伸到所有的商业逻辑,而不局限于数据库访问。
  另外,MTS的“两阶段提交”技术,使MTS能够跨多个数据库处理事务。要说明的是,“两阶段提交”技术目前只在Oracle和MS-SQL Server中完全实现,如果要跨数据库进行事务,而其中有的数据库不是Oracle和MS-SQL Server,就有可能出错。
  正如前面提到的那样,如果要使用MTS类型的远程数据模块,应当扩展它的接口,用自定义的方法来封装MTS的事务功能。
3.13 把客户程序设计为ActiveForm
  Delphi 4可以把分布式的数据库结构引申到Internet/Intranet上,把客户程序作为ActiveForm嵌入到网页中让人们下载,然后在当地执行。
  Internet/Intranet上的应用服务器必须支持DCOM或TCP/IP连接方式,同样,设计成ActiveForm的客户程序也必须支持DCOM或TCP/IP连接方式,因为下载ActiveForm的计算机上可能没有安装OLEnterprise或CORBA运行期软件。
  在设计客户程序的界面时,要用ActiveForm代替一般的窗体。为此,首先要使用“File”菜单上的“New”命令打开“New Items”对话框,选取“ActiveX”页,双击“ActiveForm”图标,打开ActiveForm向导,如图3.8所示。
  单击“OK”按钮,Delphi 4就创建一个ActiveX项目,这个项目中只有一个空白的ActiveForm,下面的步骤就象设计一般的“瘦”客户一样。
  以ActiveForm的形式设计好一个“瘦”客户程序后,还需要把它发布到Web服务器上,供人们下载。为此,首先要使用“Project”菜单上的“Web DeploymentOptions”命令打开“Web Deployment Options”对话框,然后设置有关Web发布的选项,主要是指定ActiveForm在Web服务器上的URL。最后,使用“Project”菜单上的“WebDeploy”命令把ActiveForm发布到Web服务器上。
  为了测试这个Active窗体,可以用一个Web浏览器如IE下载嵌入了ActiveForm的网页。如果客户程序通过DCOM与应用服务器连接,Windows 95中需要安装支持DCOM的程序——DCOM95,而Windows NT 4.0则不需要。

上一页  [1] [2] [3] [4] 

打印本文 打印本文 关闭窗口 关闭窗口