[转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)-阿里云开发者社区

开发者社区> 数据库> 正文

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

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

所谓命名查询(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!

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章