ccidnet????

出版日期:1999-09-06 总期号:855 本年期号:65

本期导读
要闻综合
电脑工作室
市场
硬件
软件
infotimes
用delphi 3开发midas应用程序

王发军

  在borland的midas(multi-tier distributed application services site)概念中,典型的数据库应用系统由三层结构组成。

  下面以一个三层数据库应用系统为例,介绍如何用delphi 3开发midas应用程序,以建立一个“瘦”客户端应用系统。



  一、建立一个midas服务器程序(delphi 3.0 c/s)

  建立一个midas服务器程序,简单来说,就是为客户端的tclientdataset建立一个remote dataset。

  1.建立一个新的应用程序(application)。

  2.增加一个remote datamodule。

  file→new→remote datamodule,设置其classname(如rdmtest),设置其instancing为multiple instance(缺省值)。

  3.在remote datamodule上,增加一个querytest(tquery)和providertest(tprovider),并且设置providertest的属性dataset使providertest.dataset := querytest。

  4.鼠标右击providertest,选择“export providertest from datamodule”,delphi将自动产生一个函数get—providertest,使客户端机器可以访问providertest。

  5.指定providertest的ondatarequest事件,处理客户端的数据请求。

  { 假设客户端发送的请求为一个sql查询语句,则将查询结果返回给客户端 }

  function

  trmdtest.providertestdatarequest(sender: tobject; input: olevariant): olevariant;

  begin

   with querytest do

   begin

   close;

   databasename := extractfilepath( application.exename );

   sql.text := input;

  //客户端发送的请求为一个sql查询语句

   open;

   end;

   result := providertest.data;//返回结果

  end;

  6.保存文件,编译并运行该midas服务器程序来注册该midas服务器程序。

  7.服务器应用程序时转移到另一台机器上时,应在新服务器上运行一次以重新注册,同时修改客户端设置。



  二、建立一个midas客户端程序(delphi 3.0 c/s)

  建立一个midas客户端程序,简单来说,客户端用tclientdataset通过tremoteserver向midas服务器程序请求数据。

  1.建立一个新的应用程序(application)。

  2.增加一个窗体(tform),如formclienttest。

  3.指定服务端的midas服务器程序。在formclienttest上,增加一个tremoteserver如remoteservertest,并且在其servername属性的下拉选择表中选择rmdtest,即remoteservertest.servername := rmdtest。如果rmdtest不在本计算机上,则还要首先指定属性computername。

  4.增加客户端数据集tclientdataset。在formclienttest上,增加一个tclientdataset如clientdatasettest,并且设置其remoteserver属性使clientdatasettest.remoteserver := remoteservertest,然后设置其providername属性使clientdatasettest.providername := providertest。

  5.在formclienttest上,增加一个datasourcetest(tdatasource)和一个dbgridtest(tdbgrid),其中datasourcetest的dataset属性值为clientdatasettest,dbgridtest的datasource属性值为datasourcetest。

  6.用tclientdataset向midas服务器程序请求数据。

  procedure tformclienttest.button1click(sender: tobject);

  begin

   remoteservertest.connected := true;

  //连接midas服务器程序发送一个sql查询语句

   clientdatasettest.data :=

   clientdatasettest.provider.datarequest( ′select * from items′);

   clientdatasettest.open;//获取数据

  end;

  7.编译并运行该midas客户端程序。当midas客户端程序开始运行时,midas服务器端程序将随客户端程序开始运行。

  8.分发客户端应用程序时,除了自己的程序和数据外,同时只需要分发dbclient.dll文件即可,它用来与midas服务器建立连接。

  以上程序在pwin 98+delphi 3.0下调试通过。