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

kbmMW实现sql查询(图文并茂)的更多相关文章

  1. KbmMW两种查询结果集通讯方式

    KbmMW本身可以用QueryService的方式进行远程数据查询,但是SmpileService同样具有很强的扩展性可以实现数据查询,下面展示两种基于SmpileService的远程数据查询方法,其 ...

  2. SQL常见优化Sql查询性能的方法有哪些?

    常见优化Sql查询性能的方法有哪些? 1.查询条件减少使用函数,避免全表扫描 2.减少不必要的表连接 3.有些数据操作的业务逻辑可以放到应用层进行实现 4.可以使用with as 5.使用“临时表”暂 ...

  3. 记一个简单的sql查询

    在我们做各类统计和各类报表的时候,会有各种各样的查询要求.条件 这篇主要记录一个常见的统计查询 要求如下: 统计一段时间内,每天注册人数,如果某天没有人注册则显示为0 现在建个简单的表来试试 建表语句 ...

  4. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

  5. MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?

    如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...

  6. SQL查询第m条到第n条的方法

    SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ...

  7. Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询

    1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...

  8. slick for play 使用原生sql查询以及拼接sql

    在play中用函数式框架slick来操作数据库是一件很爽的事情.但有时因为某些特殊场景又不得不用原生的sql了. 还好slick支持这种写法,可以看看slick官方文档,Slick Plain SQL ...

  9. SQL查询每个表的字段数量

    --SQL查询每个表的字段数量select b.[name], count(*) As AllCount,ISNULL(ISNULL(sum(case when isnullable=0 then 1 ...

随机推荐

  1. VMware VMnet8 模式共享主机网络配置静态 IP 和 DNS

    一.简介 NAT网络模式: 1. 宿主机可以看做一个路由器,虚拟机通过宿主机的网络来访问  Internet: 2. 可以安装多台虚拟机,组成一个小型局域网,例如:搭建 hadoop 集群.分布式服务 ...

  2. SpringBoot消失的Web.xml

    Filter 过滤器作为web.xml中重要的一部分,有着相当高的出场率,SpringBoot会默认注册几个Filter ApplicationContextHeaderFilter Characte ...

  3. Laravel 5 Form 和 HTML 的使用

    最近在用 laravel 5 做例子,在做到表单的时候,习惯性的使用 Form::open() 结果发现提示错误,没有这个类, 好吧,找了找,发现 在laravel 5 中,把 from 和 html ...

  4. 【Vijos1250】最勇敢的机器人(并查集,分组背包DP)

    题意:有N个物品,承重上限为M,有K组物品互斥关系,互斥关系有传递性,即1与2互斥,2与3互斥,1与3也互斥 给出每个物品的花费和价值,求承重上限内的最大价值总和 n<=1000,m<=1 ...

  5. HUNAN 11562 The Triangle Division of the Convex Polygon(大卡特兰数)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11562&courseid=0 求n边形分解成三角形的 ...

  6. 【WEB基础】HTML & CSS 基础入门(6)超链接

    超链接--文字链接 超链接[hyperlink]是网页中最为常见的元素之一,我们几乎可以在所有的网站页面中找到超链接.每个网站都不止一个页面,这些页面就是利用超链接进行串接.超链接帮我们实现了网页与网 ...

  7. 洛谷—— P3375 【模板】KMP字符串匹配

    P3375 [模板]KMP字符串匹配 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next. (如 ...

  8. WebGIS开发之用openlayers加载离线百度地图

    因为项目需要,只有内网环境,没有外网环境,所以需要下载地图瓦片. 一.下载瓦片地图 这个可以自行在网上找一些地图瓦片下载器,下好的瓦片地图是分级的.大概如图这种类型. 二.在地图上显示标记 首先使用o ...

  9. Spring Boot集成Spring Data Reids和Spring Session实现Session共享

    首先,需要先集成Redis的支持,参考:http://www.cnblogs.com/EasonJim/p/7805665.html Spring Boot集成Spring Data Redis+Sp ...

  10. nrf51822中app_button 的应用

    Button Handler(按键处理程序) 按键处理程序是使用GPIOTE(GPIO Task and Event)的处理机制实现的,为了防止按键的抖动.在GPIOTE event(事件)处理程序中 ...