[转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)

所谓命名查询(Named Query),指客户端的Query通过指定的名称,使用服务器端的Query操作(查、增、删、改)数据库。通过Named Query机制,实现事先在服务器端设置好SQL,达到在客户端不用写SQL的目的,同时,我们只需要将QueryService的AllowClientNamedQuery设置为True。

看一下具体的使用:

服务器端放一个kbmMWUniDACQuery:

with kbmMWUniDACQuery do begin

 Name:='T1';//客户端在SQL中调用的名称

 Published:=True;//客户端可见,不然出Query xxx not defined(Server)错误.

 KeyFieldNames:='F1';//支持客户端增、删、改

 TableName:='T1';//支持客户端增、删、改

 SQL.Text:='Select * from T1 where F1<=:F1';//服务器端的SQL,这里做了一个参数F1,支持客户端按参数查询

 Resolver:=kbmMWUNIDACResolver1;

 ConnectionPool:=Form1.kbmMWUNIDACConnectionPool1;

end;

客户端调用方法:

procedure TForm2.Button1Click(Sender: TObject);
begin
//这是直接SQL调用的方法

//  kbmMWClientQuery1.Close;
//  kbmMWClientQuery1.Query.Clear;
//  kbmMWClientQuery1.Query.Add('Select * from T1');
//  kbmMWClientQuery1.Open;

//这是Named Query方法:

  kbmMWClientQuery1.Close;
  kbmmWClientQuery1.Query.Text:='@T1';//T1,在服务器端定义的查询组件的Name属性
  kbmMWClientQuery1.FieldDefs.Update;//取得服务器SQL中的参数
  kbmMWClientQuery1.Params.ParamByName('F1').AsInteger:=5;
  kbmMWClientQuery1.Open;
end;

通过上面的代码,客户端能够通过服务器实现对一个表的操作了!

kbmMW <wbr>命名查询(Named <wbr>Query)kbmMW <wbr>命名查询(Named <wbr>Query)xalion,是他的blog指导我,同时在他的帮助下,才搞明白kbmMW Named Query!

原文地址:https://www.cnblogs.com/xalion/p/2709911.html