上图,是在服务端定义多个数据库,准备在客户端通过“联接名称”,通过QueryService访问这些数据库。
然后实现一个MultiDBQueryService,并注册为一个指定服务名称的服务,如下图:
这里,只要设置客户端服务名称及服务类名称即可。其他项不用设置。
客户端通过ClientQuery查询指定的数据库:
procedure TTestForm.Button1Click(Sender: TObject); begin kbmMWClientQuery1.QueryService:='djwkQueryService'; kbmMWClientQuery1.QueryServiceVersion:='1.0'; kbmMWClientQuery1.Query.Text:='Select * from sys_versioninfo'; kbmMWClientQuery1.ActiveClient.Data:='djexam';//指定服务端的数据库联接名称 kbmMWClientQuery1.Open; end;
上面代码,通过kbmMWClientQuery.ActiveClient.Data属性传递服务端的数据库联接名称,这样,就可以查询指定的数据库了!
现在,我的KinglandSoftServer更灵活的,通过两种方式来支持多数据库的功能实现了!