kbmMW对于Delphi来说,是最好的多层框架,没有之一,无论是效率、稳定及架构都让人无可挑剔,尤其自Delphi支持跨平台开发以来,随着Delphi支持ios及Android移动开发,KbmMW也紧随其后,经过几个版本的演变与改进,现在已经成熟,从而成为Delphi下支持移动开发最好的多层框架。
不信,那一起来看一下如何做一个普通的数据查询任务,在客户端得到一个数据集TDataSet?
按下图,拖放对应的控件到界面,设置相关的属性,对于kbmMW数据查询来说,只要放四个控件:
1. ClientTransport:这里我们用kbmMWTCPIPIndyClientTransport1,他负责与服务器通讯。
设置Host及Port,指向服务器
2. ClientConnectionPool:实现线程池来管理ClientTransport,这里我们用kbmMWClientConnectionPool1,同时设置Transport,指向kbmMWTCPIPIndyClientTransport1
3. StreamFormat:再放一个StreamFormat,用来设置数据格式,这里放kbmMWBinaryStreamFormat:,用二进制格式
4. ClientQuery:这是一个数据集控件,可以执行SQL并返回结果,同ADOQuery一样的。
放一个按钮,让ClientQuery执行指定的SQL,为了说明上面四个组件的属性关系,代码中我特意写出来。
procedure TForm85.Button1Click(Sender: TObject);
begin
kbmMWTCPIPIndyClientTransport1.Host:=Edit1.Text;
kbmMWTCPIPIndyClientTransport1.Port:=Edit2.Text.ToInteger;
kbmMWClientConnectionPool1.Transport:= kbmMWTCPIPIndyClientTransport1;
kbmMWClientQuery1.TransportStreamFormat:=kbmMWBinaryStreamFormat1;
kbmMWClientQuery1.QueryService:='djwkQueryService';
kbmMWClientQuery1.QueryServiceVersion:='1.0';
kbmMWClientQuery1.Query.Text:=Edit3.Text;
kbmMWClientQuery1.Open;
end;
下图为运行后的结果,将ClientQuery查询结果显示到StringGrid中:
这是在win32下运行的截图,实际上,这个例子可以直接编译到ios,Android平台并运行,是不是简单,就这样跨平台了。
不管你是Delphi老手还是新手,当我们能够在客户端轻松取得TDataset时,Delphi应用的开发就变的简单与高效了。
事实情况还不仅如此,接下来,基于上面的例子,还可以轻松实现对TDataSet的增、删、改操作的数据提交,还可以在事务中一次提交多个TDataSet,有了kbmMW,世界变的如此简单。
这是上面例子的源代码,可以下载看看。
为了能够快速上手kbmMW,我做了通用的kbmMW Server,并经过高并发情况下,长时间的压力测试。如果需要,可联系QQ:1255744412。
http://blog.sina.com.cn/s/blog_44fa172f0102wkuc.html