[返回]
中国计算机报1999年第65期

用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下调试通过。