首页 / 软件开发 / Delphi / DELPHI多层分布式开发(2)
DELPHI多层分布式开发(2)2010-11-23 codesky 客户端实现SQL查询由于在客户端不存在TQuery控件,似乎客户服务器模式是无法做SQL查询的。 但是,Delphi很好的解决了这个问题。事实上,只要客户端连接上服务端应用程 序,客户端的TClientDataSet就包含了一个名字为Provider的属性,对应到服务器端DataSetProvider的所有默认属性和方法,其中DataSetProvider有一个 Options属性,只要让其中的poAllowCommandText=true,那么, DataSetProvider的poAllowCommandText就可以接受前台来的SQL 命令,并传送 给TQuery。可以看出,真正传递数据的是DataSetProvider的接口,所以,用这 个接口搭建传递SQL 的桥梁是必需的。客户端进行SQL 查询的方法是:ClientDataSet.Close;
ClientDataSet.CommandText := "SQL语句";
ClientDataSet.Open;
下面通过一个实例来说明方法:一、SQL 服务器端程序:首先用上面相同的方法建立一个服务器端COM 工程。工程名取为:PcSQL。放入一个Query和一个DataSetProvider。DataSetProvider的属性Options下的poAllowCommandText=true这实际上已经建立了一个基于SQL 查询的服务器端程序。客户端查询服务器端的别名集在SQL 查询以前,用户往往需要指定查询哪个数据库,所以需要把服务器上 BDE 数据库别名(Alias )设置数据抓到前台程序来具体做法我们通过一个实例 来解决:还是先回到服务器端:在上述服务器端再建立一个TSession和一个TdataBase(在BDE 页下)Session1属性:AutoSessionName=trueSessionName=Session1_4 (运行中是可以自动调整的)KeepConnection=trueActive=trueDataBase1属性:AliasName: 连接数据库别名(比如Mymdb)DataBaseName: 自定义的名(这里比如为a)SessionName: Session1_4 (SessionName值)