kbmMW实现sql查询(图文并茂)
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查询(图文并茂)的更多相关文章
- KbmMW两种查询结果集通讯方式
KbmMW本身可以用QueryService的方式进行远程数据查询,但是SmpileService同样具有很强的扩展性可以实现数据查询,下面展示两种基于SmpileService的远程数据查询方法,其 ...
- SQL常见优化Sql查询性能的方法有哪些?
常见优化Sql查询性能的方法有哪些? 1.查询条件减少使用函数,避免全表扫描 2.减少不必要的表连接 3.有些数据操作的业务逻辑可以放到应用层进行实现 4.可以使用with as 5.使用“临时表”暂 ...
- 记一个简单的sql查询
在我们做各类统计和各类报表的时候,会有各种各样的查询要求.条件 这篇主要记录一个常见的统计查询 要求如下: 统计一段时间内,每天注册人数,如果某天没有人注册则显示为0 现在建个简单的表来试试 建表语句 ...
- Oracle常用SQL查询(2)
三.查看数据库的SQL 1 .查看表空间的名称及大小 select t.tablespace_name, round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...
- MySQL GROUP_CONCAT函数使用示例:如何用一个SQL查询出一个班级各个学科第N名是谁?
如何用一个SQL查询出一个班级各个学科第N名是谁? 首先贴出建表语句,方便大家本地测试: -- 建表语句 CREATE TABLE score ( id INT NOT NULL auto_incre ...
- SQL查询第m条到第n条的方法
SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ...
- Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询
1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...
- slick for play 使用原生sql查询以及拼接sql
在play中用函数式框架slick来操作数据库是一件很爽的事情.但有时因为某些特殊场景又不得不用原生的sql了. 还好slick支持这种写法,可以看看slick官方文档,Slick Plain SQL ...
- SQL查询每个表的字段数量
--SQL查询每个表的字段数量select b.[name], count(*) As AllCount,ISNULL(ISNULL(sum(case when isnullable=0 then 1 ...
随机推荐
- 【树状数组区间修改单点查询+分组】HDU 4267 A Simple Problem with Integers
http://acm.hdu.edu.cn/showproblem.php?pid=4267 [思路] 树状数组的区间修改:在区间[a, b]内更新+x就在a的位置+x. 然后在b+1的位置-x 树状 ...
- ubuntu mysql安装及需要其他主机连服务器mysql时的设置(error:10061)
说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...
- Heritage of skywalkert
Heritage of skywalkert skywalkert, the new legend of Beihang University ACM-ICPC Team, retired this ...
- 矩阵乘法 BZOJ 2738
矩阵乘法 [问题描述] 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. [输入格式] 第一行两个数N,Q,表示矩阵大小和询问组数:接下来N行N列一共N*N个数,表示这个矩阵: ...
- 高性能mysql之schema与数据类型优化
1.数据类型 http://www.cnblogs.com/YDDMAX/p/4937770.html
- python两个类之间变量和函数的调用
1.class_a() class_b() 2.class_b使用class_a中的变量和函数 3.变量class_a中:class_a.num=... 函数class_b中:先实例化class_a( ...
- jquery的固定定位效果
今天做了个固定定位的效果.比如对导航需要进行固定定位效果: 当没有滚动到导航下面,导航正常显示. 当滚动到导航下面,导航就固定到顶部. 这个效果使用了jquery的方法实现,具体思路为: 1)首先获取 ...
- centos6.5编译安装gearmand Job Server(C)
1)下载安装包: wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz 2)安装编译器: yu ...
- android开发之 Wifi的四个类
android开发之 Wifi的四个类 在Android中对Wifi操作,android本身提供了一些实用的包,在android.net.wifi包以下.简介一下: 大致能够分为四个基本的类ScanR ...
- mini-uboot 启动过程简单分析
单片机有最小系统,所谓最小系统,就是单片机能正常工作所需要的最少外设.对于Uboot来说,同样有个最小系统,因为Uboot最主要的功能就是引导内核.下面我们通过一个简单的Mini-Uboot来分析Ub ...