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. 学习shell脚本之乘法口诀

    脚本如下: #!/bin/bash for i in 'seq 1 9' do for j in 'seq 1 $i' do k=$[$i*$j] echo -ne "$j"&qu ...

  2. *hdu5632Rikka with Array

    $n \leq 10^300$,问所有$i<j$且$f_i>f_j$的$(i,j),1 \leq i \leq n,1 \leq j \leq n$数量.对某个数取模. $f(a,b,0/ ...

  3. AtCoder Regular Contest 095E - Symmetric Grid

    $n \leq 12,m \leq 12$,$n$行$m$列小写字母,现可做无数次操作:交换两行:交换两列.问是否有可能把他变成中心对称的. 没有去想分组枚举的复杂度QAQ 行和列的操作顺序是随意的. ...

  4. Scrapy学习-5-下载图片实例

    1. 在项目下创建一个images文件用于存放图片 2. 载图片相关模块 pip install pillow 3.修改配置文件,激活pipelines ITEM_PIPELINES = { 'Art ...

  5. SQL Server 命令行操作

    连接sqlcmd -S localhost -U SA -P '123456'; 执行脚本 sqlcmd -S localhost -U SA -P '123456' -i /root/dbo.sql ...

  6. 转载免费的SSL证书

    目前我知道的有2种方式进行免费的SSL证书的获取 第一种:腾讯云申请 第二种:Let's Encrypt (国外在) 我一直使用第一种,还可以,有效期1年. 以下转载第二种: 实战申请Let's En ...

  7. Wormholes(spfa判负环)

      POJ - 3259—— Wormholes Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & % ...

  8. Loj #6307. 「雅礼国庆 2017 Day1」Clique

    link: https://loj.ac/problem/6307 最大团转补图的独立集,这样的话只有r[x]<l[y]或者r[y]<l[x],x和y才能连边,所以排序之后乱搞就行了. 需 ...

  9. Linux出现cannot create temp file for here-document: No space left on device的问题解决

    在终端输入:cd /ho 按tab键时,显示错误: bash: cannot create temp file for here-document: No space left on device 这 ...

  10. Spring的依赖注入概述

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/dependency-injection.html: 每个基于Java应用程序都有几个对象,这些对象 ...