摘要: 从kbmmw 5.01 开始,就正式支持delphi 10.2 和Linux 了。 今天我们就建一个 kbmmw for linux 服务器简单说一下。 本例子基于上次的linux Daemon例子 。 如果大家不熟悉,请先阅读上面的文章。 首先在datamodule 里面放上 kbmmwserve 阅读全文
posted @ 2019-07-01 23:54 业容天 阅读(62) 评论(0) 推荐(0)
摘要: 现在各种系统中JSON 用的越来越多。delphi 也自身支持JSON 处理。 今天简要说一下kbmmw 内部如何使用和操作JSON。 kbmmw 中json的操作是以TkbmMWJSONStreamer 为基础,要导入、导出JSON字符串, 首先要创建TkbmMWJSONStreamer. 然后是 阅读全文
posted @ 2019-07-01 23:54 业容天 阅读(78) 评论(0) 推荐(0)
摘要: delphi 10.2 支持linux, 而且官方只是支持命令行编程,目地就是做linux 服务器端的开发。 既然是做linux服务器端的开发,那么普通的命令行运行程序,然后等待开一个黑窗口的方式就 太low了(目前就有个别语言大咖,经常在Windows 上开个黑窗口,看起来非常恶心),那么如果 避 阅读全文
posted @ 2019-07-01 23:53 业容天 阅读(214) 评论(0) 推荐(0)
摘要: 前几天做了linux下apache的开发,今天做一个linux 下的webservice ,以供客户端调用。 闲话少说,直接干。 新建一个工程。选other...,选择如图。 继续输入服务名 然后就生成对应的单元。 增加linux 平台。 完善对应的单元代码 编译本工程。 哎呀,怎么出错了? 不要害 阅读全文
posted @ 2019-07-01 23:52 业容天 阅读(154) 评论(0) 推荐(0)
摘要: 随着delphi 10.2 开始了对Linux 的重新支持。devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this release we added such significant features as: The ne 阅读全文
posted @ 2019-07-01 23:52 业容天 阅读(98) 评论(0) 推荐(0)
摘要: 经过近15年的沉默。delphi 10.2 终于重新开始支持linux 开发了。 今天说一下在ubuntu中开发apache的方法。 首先安装ubuntu 的delphi 开发环境,请参考以前的文章 http://www.cnblogs.com/xalion/p/6368899.html 在delp 阅读全文
posted @ 2019-07-01 23:51 业容天 阅读(68) 评论(0) 推荐(0)
摘要: 目前关于REST 服务的话题越来越热,kbmmw 在5.0 里面开始支持rest。今天我就试一下kbmmw 的 rest 服务。闲话少说,开始。 老规矩,放上两个kbmMWServer1和 kbmMWHTTPSysServerTransport1两个控件。 设置kbmMWHTTPSysServerT 阅读全文
posted @ 2019-07-01 23:50 业容天 阅读(95) 评论(0) 推荐(0)
摘要: 还有更方便的客户端调用方法 由于目前新版还没有发布,目前只有这些内容。 阅读全文
posted @ 2019-07-01 23:49 业容天 阅读(121) 评论(0) 推荐(0)
摘要: 前两天kbmmw 发布了5.0 版。里面一个非常令人兴奋的特性就是原生内部支持http.sys. 有关http.sys 的介绍及优势,我就在这里不多说了,大家可以参照一下我以前的文章。 关于http.sys 的最大优势就是web 服务,我今天就以此为例,在kbmmw中建一个使用httpsys的 we 阅读全文
posted @ 2019-07-01 23:49 业容天 阅读(91) 评论(0) 推荐(0)
摘要: 一直以来,delphi 的网络通讯层都是以indy 为主,虽然indy 的功能非常多,涉及到网络服务的 各个方面,但是对于大多数多层服务来说,就是需要一个快速、稳定、高效的传输层。Delphi 的 datasnap 主要通过三种实现数据通讯的,一种是大家恨得牙痒痒的indy,另外一种是通过iis 的 阅读全文
posted @ 2019-07-01 23:47 业容天 阅读(229) 评论(0) 推荐(0)
摘要: 从去年开始,kbmmw 慢慢增加内涵,除了完善各种服务外,陆续增加和扩展了作为一个中间件必须有的功能, 例如,权限管理、日志系统、调度系统、内存调试等功能。 今天给大家介绍一下kbmmw 的调度事件,调度事件的主要目标就是”在指定时间干,必须干“,不是“爱干”不干,是“必须干” :)。 在传统的de 阅读全文
posted @ 2019-07-01 23:46 业容天 阅读(102) 评论(0) 推荐(0)
摘要: 作为一个服务器端的应用,最基本的要求就是稳定,当然要做一个稳定的服务器端,需要涉及到很多方面, 内存泄露就是稳定的一个致命杀手,因为服务器的物理内存是有限的,即使一个功能有很小的内存泄露,经过 长时间的运行,也会累积成一个非常大的内存泄露,导致服务器内存耗尽,系统崩溃。因此珍惜服务器资源是 开发者必 阅读全文
posted @ 2019-07-01 23:46 业容天 阅读(67) 评论(0) 推荐(0)
摘要: 有朋友问如何将excel导入数据库,这是我做的uniGUI项目中代码,实现uniDBGrid导入数据库的函数,因为用了kbmMW,所以你看到是将uniDBGrid导入kbmMWClientQuery,然后提交的ClientQuery到数据库。共享了!function ImportFromFile(a 阅读全文
posted @ 2019-07-01 23:45 业容天 阅读(73) 评论(0) 推荐(0)
摘要: delphi 10 里面的安卓服务有四种,上面的一篇文章里面的图有介绍。 今天做一个remote service 的例子。(里面一部分代码是抄别人的,如果不太清楚,自行恶补) remote service 实际上就是主程序包含服务模块,另外的一个程序可以调用。 由于delphi 10 的低级错误,需 阅读全文
posted @ 2019-07-01 23:44 业容天 阅读(89) 评论(0) 推荐(0)
摘要: 关于delphi 10 移动服务开发的几张图 阅读全文
posted @ 2019-07-01 23:43 业容天 阅读(52) 评论(0) 推荐(0)
摘要: 从delphi 开始支持安卓的开发开始, 安卓service 开发一直都是delphier 绕不过去的坎, 以前也有开发service 的方法,但是都是手工处理启动文件,而且要修改很多东西,基本上成功 的概率很低。 delphi 10 seattle(这个名字很特殊,与win10 一样,直接跳过了9 阅读全文
posted @ 2019-07-01 23:42 业容天 阅读(59) 评论(0) 推荐(0)
摘要: 转载地址:http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html 感谢作者 Android 中的 Service 全面总结 1、Service的种类 按运行地点分类: 其实remote服务还是很少见的,并且一般都是系统服务。 按运行类 阅读全文
posted @ 2019-07-01 23:42 业容天 阅读(59) 评论(0) 推荐(0)
摘要: 集中式均衡负载为实现集中式均衡负载方案,需要实现两个不同的应用服务器,一个是只包含均衡负载组件再无其他内容的应用服务器,可称之为均衡负载应用服务器,下文简称LB Server,另外一个就是包含一个或多个业务逻辑服务(Query Service and Http Service...)及一个均衡负载服 阅读全文
posted @ 2019-07-01 23:40 业容天 阅读(37) 评论(0) 推荐(0)
摘要: 在kbmMW均衡负载与容灾(1)中,介绍了利用ClientTransport的OnReconnect事件,对联接的应用服务器的地址进行更换,做容灾处理。实际上,作者还给我们提供了另外一种机制,直接在ClientTransport中定义可联接服务器及如何切换。具体来说就是三个属性,如下图:1.Fall 阅读全文
posted @ 2019-07-01 23:40 业容天 阅读(46) 评论(0) 推荐(0)
摘要: 1。修改kbmMWUnidac单元的TkbmMWUNIDACConnection.InternalOpenConnection方法,加上: //支持unidac重联 FDatabase.Options.LocalFailover:=Options.LocalFailover; FDatabase.O 阅读全文
posted @ 2019-07-01 23:39 业容天 阅读(28) 评论(0) 推荐(0)
摘要: kbmMW为均衡负载与容灾提供了很好的机制,支持多种实现方式,现在看看最简单的一种,客户端控制的容灾和简单的负载均衡。现在,我们将kbmMWServer部署到不同的服务器,或者在同一服务器部署多份实例,这样,我们会有一个服务的访问列表:192.168.0.88:9000192.168.0.88:90 阅读全文
posted @ 2019-07-01 23:39 业容天 阅读(45) 评论(0) 推荐(0)
摘要: kbmmw 4.82 最大的新特性就是增加了 日志管理器。 新的日志管理器实现了不同类型的日志、断言、异常处理、计时等功能。 首先。引用kbmMWLog.pas 单元后,系统就默认生成一个IkbmMWLog 实例: Log:IkbmMWLog; log 默认使用对应操作系统的日志功能。 为了能保存到 阅读全文
posted @ 2019-07-01 23:38 业容天 阅读(47) 评论(0) 推荐(0)
摘要: delphi xe7 中对数组操作做了很多扩充,比如加入了类似字符串处理的功能。 例如,数组相加 1 2 3 4 5 6 7 8 9 var A: array of integer; B: TBytes = [1,2,3,4]; //Initialization can be done from d 阅读全文
posted @ 2019-07-01 23:37 业容天 阅读(75) 评论(0) 推荐(0)
摘要: 开始前,先看下要实现的微信接口,上传多媒体文件,这个接口是用Form表单形式上传的文件。对我来说,对http的Form表单一知半解,还好,查到这个资料,如果你也和我一样,必须看看这篇文章。在xalion窑主的指导下,我使用了indy自带的TIdMultiPartFormDataStre am类,来提 阅读全文
posted @ 2019-07-01 23:35 业容天 阅读(136) 评论(0) 推荐(0)
摘要: 近5、6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本《Delphi XE6 android 编程入门教程》,上周刚拿到,这一周大概看了一遍。 严格意义上,这本书不是按正常的出版的格式来的,大部分应该是类似博客的汇总。delphi 阅读全文
posted @ 2019-07-01 23:35 业容天 阅读(125) 评论(0) 推荐(0)
摘要: 写以下的文字是怀着无比兴奋的心情写的,急于同朋友们分享XE7的进步!1.更新的bug列表并不全通过bug修正列表及发布的消息,可以看到up1修正了很多bug,正如我所说,有些bug并没有写到发布的bug列表中,如TextPrompt不显示的问题。2.解决了对象释放的问题基于XE7,我做了测试代码,也 阅读全文
posted @ 2019-07-01 23:35 业容天 阅读(0) 评论(0) 推荐(0)
摘要: 2014年9月,delphi xe7 出来了,这次在数据库技术方面,彻底抛掉了从1995 年 delphi 1.0 就自带的(Borland Database Engine)数据库访问技术。从而宣告了这个持续 了20余年delphi 访问数据库技术进入历史。 纵观delphi 数据库技术的20年发展 阅读全文
posted @ 2019-07-01 23:34 业容天 阅读(206) 评论(0) 推荐(0)
摘要: 经过xe4,xe5,xe6 这么几个版本的磨合,易博龙终于在今年9月推出了统一的多平台开发版本-XE7. 经过最近几天的测试,非常不错。如果各位同学在做移动开发,强烈建议使用XE7. 前面几个版本可以忽略了。 由于xe7 在界面设计上使用了新的视图(View) 模式,通过主视图建立子视图. 这里系统 阅读全文
posted @ 2019-07-01 23:33 业容天 阅读(61) 评论(0) 推荐(0)
摘要: 先要学习一下接入的资料,在这里,因为原理都在,所以一定要认真阅读,然后,利用Delphi实现一个对应函数,然后申请微信公众平台接口测试帐号。function CheckSignature(const signature, timestamp, nonce, token: string): boole 阅读全文
posted @ 2019-07-01 23:32 业容天 阅读(102) 评论(0) 推荐(0)
摘要: KbmMW 中支持基于UDP的消息广播,也支持TCP/IP hub/spoke 方式,还有 基于UDP或者TCP/IP 的点对点的消息传输。 1.基于UDP的消息广播 根据UDP 的工作原理,在同一个网段里面,可以发布广播包。这样发布者只需要发布一次, 消息就可以被同一网段上的所有订阅者收到。这样大 阅读全文
posted @ 2019-07-01 23:31 业容天 阅读(72) 评论(0) 推荐(0)
摘要: 大体思路: 1.用户向服务号发消息,(这里可以是个菜单项,也可以是一个关键词,如:注册会员。) 2.kbmmw web server收到消息,生成一个图文消息给微信,在图文消息中做好自己的url,在url中,可以把第一步消息带来的openid写到url的参数表中。 3.用户点这个图文消息 4.web 阅读全文
posted @ 2019-07-01 23:31 业容天 阅读(98) 评论(0) 推荐(0)
摘要: 解释WIB 是什么之前,先回顾以下我们前面的各种服务工作方式。前面的各种服务的工作方式都是请求/应答方式。 客户端发送请求,服务器端根据客户端的请求,返回相应的结果。这种方式是一种顺序式访问,是一种紧耦合的方式。 服务器被动接受访问,服务器无法直接给客户端发消息。针对这种情况出现了发布/订阅方式。现 阅读全文
posted @ 2019-07-01 23:30 业容天 阅读(93) 评论(0) 推荐(0)
摘要: 在以前的文章里面介绍过kbmmw 做web server. 前几天红鱼儿非要我给他做一个支持https 的web server. 其实kbmmw 支持https 有好几种方法: 1. 使用isapi 部署到iis 或者是apache 上,使用iis 或apache 的https 功能; 2.通过代理 阅读全文
posted @ 2019-07-01 23:30 业容天 阅读(205) 评论(0) 推荐(0)
摘要: kbmmw 由于文档比较少,很多同学开始用时很难理解。一直准备写一个关于kbmmw 架构的东西。 这几天与红鱼儿(blog) 研究服务器线程时,整理了一下,大概画了一下kbmmw (版本4.5)服务器的架构图,这里未涉及消息传输。 由于全部是通过阅读源码研究的,鉴于本人水平有限,不一定完全正确。欢迎 阅读全文
posted @ 2019-07-01 23:29 业容天 阅读(90) 评论(0) 推荐(0)
摘要: 从kbmmw 4.4 开始,增加了认证管理器,这个比原来的简单认证提供了更多的功能。细化了很多权限操作。 今天对这一块做个介绍。 要做一个认证管理,大概分为以下5步: 1. 定义你要保护的资源,一般是服务、函数,当然你只要不限麻烦,可以是任何东西; 2. 定义使用者(用户); 3. 定义角色,使用者 阅读全文
posted @ 2019-07-01 23:28 业容天 阅读(51) 评论(0) 推荐(0)
摘要: 在帮朋友调试kbmmw 服务器的时候,发现用uindac 访问sql server作为后台时,碰见一个问题。 具体如下: 这一句运行时不出现错误,但是返回结果为空,很是奇怪。 当改成这样的化,就可以返回正常结果。 经过查询devart 的论坛,发现这是sql server 本身的问题。 要使第一段代 阅读全文
posted @ 2019-07-01 23:27 业容天 阅读(59) 评论(0) 推荐(0)
摘要: 为了支持多平台开发的delphi XE5,kbmmwtable 做了非常大的改动。 目前已经可以在ios 和android 上建立和查询数据表了,但是众说周知,在ios 和android 上 使用LiveBinding显示数据是一种痛苦(慢的让人发狂)。为了解决这个问题,kbmtable 附带了三个 阅读全文
posted @ 2019-07-01 23:26 业容天 阅读(46) 评论(0) 推荐(0)
摘要: delphi XE5 出来了,增加了android 的开发支持,另外增加了一个RESTClient 来支持访问REST 服务器。 这个功能非常强大,可以直接使用非常多的REST 服务器。同时也可以支持访问kbmmw 的web 服务器, 并完美的通过JSON支持使用kbmmw 的JSON 数据格式。使 阅读全文
posted @ 2019-07-01 23:25 业容天 阅读(68) 评论(0) 推荐(0)
摘要: 上一次通过soap,使IOS 访问了kbmmw服务器,今天顺便看能不能与android 共用服务器上的那个 下载图片的功能。首先说一下服务端的的程序,基本上就是前面的代码,没有变化,只是要indy 里面的 base64 编码功能,不再啰嗦,直接代码: function Txalionsrv.Perf 阅读全文
posted @ 2019-07-01 22:41 业容天 阅读(58) 评论(0) 推荐(0)
摘要: 随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此 无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提供了C 的客户端,可以使用xcode连接 kbmmw的C 客户端来访问kbmmw 服务器,但是功能有 阅读全文
posted @ 2019-07-01 22:40 业容天 阅读(49) 评论(0) 推荐(0)
摘要: 上次写了b4a 通过xmlrpc 访问rtc 的远程服务,有网友询问如何通过b4a 访问RTC web 的二进制流,例如如何下载 服务器上的照片,其实访问二进制流和访问字符串类似,不同的地方是,由于是通过http 协议,对于二进制流,需要先转换成 base64 编码,到客户端后再再把base64 转 阅读全文
posted @ 2019-07-01 22:15 业容天 阅读(85) 评论(0) 推荐(0)
摘要: RealThinClient (以下简称RTC) 也是一款delphi 多层开发的框架,由于其底层通讯协议是自己封装SOCK 库,抛弃了 大家诟病的indy,因此表现的非常稳定,效率也非常高,深受很多人的追捧。由于RTC 是从底层通讯做起的,因此通讯层的 功能非常强,但是在中间层数据库功能虽然有所实 阅读全文
posted @ 2019-07-01 22:14 业容天 阅读(158) 评论(0) 推荐(0)
摘要: RTC 作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择。下面我们做一个使用RTC web 服务器返回数据库JSON 的例子。 建立一个新的程序窗体,放置如图的控件: 其中server 的属性为 注意,这一块先不要选多线程,因 阅读全文
posted @ 2019-07-01 22:14 业容天 阅读(94) 评论(0) 推荐(0)
摘要: 想利用TkbmMWUNIDACQuery插入一条记录,结果遇到问题,显示: 不允许从数据类型 sql_variant 到 varchar 的隐式转换。请使用 CONVERT 函数来运行此查询。这是什么问题啊?下面是出问题的代码,很常规的写法。 q:=TkbmMWUNIDACQuery.Create( 阅读全文
posted @ 2019-07-01 22:13 业容天 阅读(52) 评论(0) 推荐(0)
摘要: 关于kbmMW的事务控制,前文已经在客户端实现,通过kbmMWClientTransaction来控制多个数据集的提交,在客户端提交多数据集,实际上,是在客户端实现业务逻辑,并通过一个事务来完成数据处理,这是违反多层架构的做法,实际项目中,需要在服务端,往往是利用多个数据集进行业务处理,并且用事务来 阅读全文
posted @ 2019-07-01 22:12 业容天 阅读(54) 评论(0) 推荐(0)
摘要: 首先,当一个企业要给外网用户提供服务时,应用服务器上应该配置外网IP,同时外网防火墙也要进行相关的配置, 但是当对外的服务器比较多时,可能需要很多外网IP,同时防火墙上要频繁设置,非常麻烦。第二,分发客户端后,一般 配置都要默认设置好(否则会给客户造成不必要的麻烦),那么客户端都会指向一个相对比较固 阅读全文
posted @ 2019-07-01 22:12 业容天 阅读(39) 评论(0) 推荐(0)
摘要: TStringList不是线程安全的,当我们在线程用到他是,要做保护。方法有两种,一种是用delphi自带的Critical,另外一种就是kbmMW为我们提供的TkbmMWLock类。现在我们看看如何用TkbmMWLock为TStringList做线程安全:1.基于TStringList声明自己的类 阅读全文
posted @ 2019-07-01 22:11 业容天 阅读(87) 评论(0) 推荐(0)
摘要: 在kbmMW创建服务向导中,有个“Eventoperated service”,其描述信息:同TkbmMWSimpleService一样,就是公布了一个附加的事件,来控制客户端请求,取代了ProcessRequest. 看一下TkbmMWEventService代码,原来是这样: 1.TkbmMWE 阅读全文
posted @ 2019-07-01 22:04 业容天 阅读(56) 评论(0) 推荐(0)
摘要: kbmMW提供了QueryService,供我们在客户端象传统数据库应用一样,直接利用ClientQuery做SQL查询,以及提交,并且能够在客 户端以事务的方式提交多个数据集,应该说,QueryService为我们提供了非常好的便利,快速将两层应用转为多层应用,如果用过ASTA,就会发 现,Que 阅读全文
posted @ 2019-07-01 22:01 业容天 阅读(116) 评论(0) 推荐(0)
摘要: 做一个简单的QueryService,在跟踪过程中发现,客户端一个查询,会被触发两次。怎么会这样,这严重影响服务器性能。 客户端的代码非常简单,就是执行一个SQL,通过QueryService返回结果: kbmMWClientQuery2.Close; kbmMWClientQuery2.Open; 阅读全文
posted @ 2019-07-01 22:00 业容天 阅读(121) 评论(0) 推荐(0)
摘要: kbmMW提供了稳顾机制,分为服务端的Cache及客户端的Cache。以客户端为例,当客户端发出相同的数据查询请求时,kbmMW会在客户端的Cache中查找,如果找到,则不再向服务器请求数据。 为了启用一个ClientQuery使用稳存,首先要设置其以下两个属性: kbmMWClientQuery. 阅读全文
posted @ 2019-07-01 21:59 业容天 阅读(142) 评论(0) 推荐(0)
摘要: 开始利用kbmmw实作项目,第一件事就是为的服务端加用户的认证。如果客户端发来的请求无法在服务器端通过认证,即客户端认证失败,会在客户端弹出一个错误提示窗口:Authorization failed.总不能让用户看到这样的提示信息,得想办法,截获这样的错误,并给出自己的提示。没想到,费了一翻周拆,最 阅读全文
posted @ 2019-07-01 21:59 业容天 阅读(129) 评论(0) 推荐(0)
摘要: 按客户端使用事务更新多个表数据到kbmMW服务器,使用TkbmMWClientTransactionResolve, 可以一次性提交多个修改的数据集到服务器端,服务器利用事务来执行数据的更新,成功,提交事务,不成功,则Rollback事务。在实际开发中,可能遇到 在更新数据集的同时,还要执行单独的S 阅读全文
posted @ 2019-07-01 21:58 业容天 阅读(48) 评论(0) 推荐(0)
摘要: TkbmMWClientQuery有一个ErrorTable属性,用于记录提交Query时返回的错误结果。当用户保存修改的业务数据,出错时,可以用ErrorTable定位出错的记录并提示错误信息。 下面是实现代码: procedure TForm2.Button4Click(Sender: TObj 阅读全文
posted @ 2019-07-01 21:58 业容天 阅读(59) 评论(0) 推荐(0)
摘要: 多层应用中的事务处理,是必须的,如果处理不好,就会出现各种数据不同步的现象,无法投入使用。以前用ASTA实现的多层应用,是在客户端利用ASTA机 制,将要提交的数据集、执行的SQL及SP,统统生成到一个脚本中,在ASTA是TAstaParamList,然后一次性提交到服务器,在服务器端在执 行这个脚 阅读全文
posted @ 2019-07-01 21:58 业容天 阅读(104) 评论(0) 推荐(0)
摘要: 所谓命名查询(Named Query),指客户端的Query通过指定的名称,使用服务器端的Query操作(查、增、删、改)数据库。通过Named Query机制,实现事先在服务器端设置好SQL,达到在客户端不用写SQL的目的,同时,我们只需要将QueryService的AllowClientName 阅读全文
posted @ 2019-07-01 21:57 业容天 阅读(60) 评论(0) 推荐(0)
摘要: 这两天,用xalion的入门文章学习kbmMW的使用,当用kbmMW向导生成一个Service后,需要注册到kbmMWServer中,具体的方法在生成的Service中已经有说明: // INSTRUCTIONS FOR REGISTRATION/USAGE// // Please update t 阅读全文
posted @ 2019-07-01 21:56 业容天 阅读(53) 评论(0) 推荐(0)
摘要: 总结一下这两天学习QueryService,一个SQL从客户端是如何从服务端取得查询结果的。客户端:1.第一个出场是是内存表,这要用到的kbmMWClientQuery,从TkbmCustomMemTable继承而来,通过Query属性准备 SQL语句,利用QueryService及QuerySer 阅读全文
posted @ 2019-07-01 21:56 业容天 阅读(59) 评论(0) 推荐(0)
摘要: kbmWTCPIPInfyClientTransport联接状态 当客户端请求一个Service时,kbmWTCPIPInfyClientTransport.Active是什么样呢?做一个简单的测试,原来是这样:当 kbmMWSimpleClient1.Request时,会检查使用的Transpor 阅读全文
posted @ 2019-07-01 21:55 业容天 阅读(60) 评论(0) 推荐(0)
摘要: There be must at least one field 用uniDAC+kbmMW+SQL Server做服务器,当客户端查询时,出现这个错误,在QQ群请教,一位朋友说,在服务器端查询不对,憋了一天,最终,朋友改了TkbmMWUNIDACConnection,得以解决,原来是这样,如果un 阅读全文
posted @ 2019-07-01 21:55 业容天 阅读(1) 评论(0) 推荐(0)
摘要: kbmmw 开发点滴:EarlyAuthentication 1.kbmMWServer.EarlyAuthentication的作用:当为真是,当客户端请求时,先触发kbmMWServer的OnAuthenticate事件,如果请求的Service需要验证,再触发Service的OnAuthent 阅读全文
posted @ 2019-07-01 21:54 业容天 阅读(39) 评论(0) 推荐(0)
摘要: 前面说了basic4android 直接访问kbmMW server 的方法,由于javaclient 不直接支持服务器端数据库的操作, 要显示数据的内容就需要通过JSON 方式来转换。今天就大概介绍一下转换的办法。 首先要在服务器端把数据库转换为JSON ,为了方便,我修改了一下前面的转换过程。 阅读全文
posted @ 2019-07-01 21:53 业容天 阅读(153) 评论(0) 推荐(0)
摘要: 由于目前delphi xe2 还不直接支持Android 的开发,因此kbmMW 客户端的功能也没办法直接在Android 上运行。 由于kbmMW 为了与java 应用程序通讯,在企业版里面提供了一个JavaClinet. 具体文件名为kbmMWClient.jar。 而在basci4androi 阅读全文
posted @ 2019-07-01 21:51 业容天 阅读(140) 评论(0) 推荐(0)
摘要: 用kbmMW 开发webserver也是非常方便的。 还是以前面的简单服务器为基础,我们先要通过kbmMW的service wizard 来建立web 服务。 如图,先选择web server service 点下一步,出现选择文件目录的界面 我们这里用webfiles 相对路径,就是在网页文件放到 阅读全文
posted @ 2019-07-01 21:50 业容天 阅读(213) 评论(0) 推荐(0)
摘要: 由于kbmMW 服务器与客户端交互是使用它的专用数据格式,因此与其它语言及平台相互访问的话就会有兼容问题, 为了最大化的利用kbmMW 服务器,从kbmMW 4.0 以后,其开始支持JSON 格式传递数据,其实就是可以通过 Webserver根据客户端的request 来返回对应的JSON串. 继续 阅读全文
posted @ 2019-07-01 21:50 业容天 阅读(190) 评论(0) 推荐(0)
摘要: 前面讲了如何建立和访问服务器,但是前面建的服务器都没有安全控制,这里有很大的安全问题,第一是任何人做一个客户端都可以都可以访问 服务器。第二是数据在网络传输过程中都是明码的,没有加密,使用网络侦听器就可以检测到传输的内容。这是一个标准的系统不允许的,今天就 讲一下如何安全的访问服务器. 首先我们需要 阅读全文
posted @ 2019-07-01 21:48 业容天 阅读(152) 评论(0) 推荐(0)
摘要: GPS在很多Android设备上扮演很重要的角色.幸运的是可以很方便的使其工作起来.在这个教程里面我们将完成一个程序,它可以显示当前位置并显示卫星状态.GPS功能被封装在GPS库里面.因此我们首先要把这个库加入到引用里面:与其相关的有种类型.最主要的是GPS. GPS管理连接和事件. 第二个是Loc 阅读全文
posted @ 2019-07-01 21:43 业容天 阅读(153) 评论(0) 推荐(0)
摘要: ListView 控件是一个非常强大的控件. 它可以以非常雅致的方式来显示长的或者短的列表.建立一个ListView 非常简单: Code: Sub Globals Dim ListView1 As ListViewEnd SubSub Activity_Create(FirstTime As Bo 阅读全文
posted @ 2019-07-01 21:42 业容天 阅读(176) 评论(0) 推荐(0)
摘要: 到目前为止,我们在开发中有两种方法来测试应用.一种是通过Android 模拟器来测试.另外就是当你的设备支持ADB调试的话,可以直接连到真实设备上测试.Android模拟器相比真实设备慢得多(尤其是安装应用).因此大多情况下使用真实设备更方便.我个人也仅仅是在用可视化设计器时才使用模拟器.然而不是所 阅读全文
posted @ 2019-07-01 21:41 业容天 阅读(532) 评论(0) 推荐(0)
摘要: 类型Basic4android的类型系统是直接从Java的类型系统中派生的.有两种类型的变量: 基本类型 and 非基本类型.基本类型包括数字类型: Byte, Short, Int, Long, Float 和 Double.基本类型也包括: Boolean 和 Char.类型及范围列表: htt 阅读全文
posted @ 2019-07-01 21:41 业容天 阅读(190) 评论(0) 推荐(0)
摘要: 简而言之 :每个 Basic4android 程序在它自己的进程中运行.一个进程拥有一个主线程,这个主线程也叫做UI 线程,它会一直运行到进程结束.一个进程也可以有好几个线程,这些线程用来做一些后台工作.当用户启动一个应用时,一个进程就开始了工作, 假设其并没有已经在后台运行.进程的结束是不确定的. 阅读全文
posted @ 2019-07-01 21:40 业容天 阅读(144) 评论(0) 推荐(0)
摘要: basic4android 的 IDE 功能强大,它帮助你专注于写代码和建立你的应用.下面列出一些不容易发现的特色:- Ctrl + Space = 自动完成按 Ctrl + Space 激活自动完成功能,它会把得到的关键字,变量,模块,方法,子程,属性,字段等以列表显示出来 .并且在很多时候会列出 阅读全文
posted @ 2019-07-01 21:38 业容天 阅读(115) 评论(0) 推荐(0)
摘要: 这个教程说明在Basic4android v1.50 后加入的新的调试功能及其他相关的工具.在Project菜单下有一个叫Attach Debugger的新选项.如果这个选项是选上的话,那么编译的的代码就会包含调试代码. 调试代码允许IDE 与程序建立连接并检查它的运行.当程序运行时,首先会等10秒 阅读全文
posted @ 2019-07-01 21:38 业容天 阅读(102) 评论(0) 推荐(0)
摘要: 要学习本教程,请先参考下面的教程:安装 Basic4android 和 Android SDKHello world - 安装Android 模拟器 在这个教程里面我们要使用设计器来建立layout. 这个layout包括一个文本框和一个按钮.用户需要猜一个随机的数字. 用户在文本框里面输入数字并通 阅读全文
posted @ 2019-07-01 21:37 业容天 阅读(140) 评论(0) 推荐(0)
摘要: 如果你还没有安装Basic4android和Java SDK,请先参照后面的链接里面的安装和配置方法:http://www.basic4ppc.com/forum/basic...droid-sdk.html在这个教程里面,我们将建立一个新的AVD (Android Virtual Device)并 阅读全文
posted @ 2019-07-01 21:36 业容天 阅读(150) 评论(0) 推荐(0)
摘要: 这几天没有来得及更新博客,有两个原因,一个是个人的私事比较忙,另外就是应basic4android作者的邀请,把basic4android 的介绍和教程翻译成中文。前年开始做android开发,由于过去一直使用delphi 开发,习惯了可视化设计,实在不太习惯使用Java 开发, 刚好有个国外的朋友 阅读全文
posted @ 2019-07-01 21:35 业容天 阅读(539) 评论(0) 推荐(0)
摘要: 上次说明了客户端如何把变化的数据更新到服务器端,但是在实际应用中,往往是要同时更新若干个表, 为了保证逻辑上一致,这些表的操作要么都一次成功,要么全部失败,这就需要使用事务处理。我们今天 就来说一下,怎么在kbmMW中实现事务处理。同时也顺便讲一下kbmMW 里面命名查询(named query)的 阅读全文
posted @ 2019-07-01 21:34 业容天 阅读(270) 评论(0) 推荐(0)
摘要: PS:随笔写的在SQL Server中要用到的 (重复、替换、截取、去空格、去小数点后的位数) 阅读全文
posted @ 2019-07-01 21:30 业容天 阅读(1340) 评论(0) 推荐(0)
摘要: 上次写了从kbmMW服务器给客户端返回数据,我们实现了数据的查询功能,但是当客户端对数据进行了增加、更新、删除的操作, 我们必须把这些操作返回到服务器端,并对后台数据库进行更新。kbmMW 可以很方便的实现这一功能,今天就做一个更新数据到 服务器的例子。 还是在昨天的基础上,我们要把客户端的信息更新 阅读全文
posted @ 2019-07-01 14:23 业容天 阅读(52) 评论(0) 推荐(0)
摘要: 刚写完几个多层的例子,本来准备再写点其他稍微复杂的例子,很多同学就问数据库访问的方法,既然这样,就先写一下 数据库访问的过程与方法。kbmMW 支持很多数据库访问方式和控件,前面在安装时已经说过了。由于delphi 已经在d7 以后 不再推荐使用其传统的数据库方式BDE了,尤其是在delphi XE 阅读全文
posted @ 2019-07-01 14:22 业容天 阅读(67) 评论(0) 推荐(0)
摘要: 昨天本来准备写一个kbmMW 做webserver 的一个例子,可是在调试过程中发现不能正常显示图片文件。跟踪了很长时间 才发现是string 和 ansistring 在XE2 里面转换造成的问题,经过修改后,终于可以正常运行了。耽搁了半天时间,因此记录一下, 给同学们一个参考,以后在编程时注意一 阅读全文
posted @ 2019-07-01 14:21 业容天 阅读(48) 评论(0) 推荐(0)
摘要: 在第一个简单的例子,服务器返回给客户端的是一个简单的变量,但是在日常的应用中,往往需要给客户端传输大量的数据,例如要 返回流,在kbmMW 里面返回流也是比较方便的,下面我们就以给客户端返回一个照片为例,说明一下。 还是在上次的例子服务里面,我们添加一下这个功能,首先要定义服务函数处理: 然后把函数 阅读全文
posted @ 2019-07-01 14:20 业容天 阅读(40) 评论(0) 推荐(0)
摘要: 我们今天做一个kbmMW 简单服务,功能是客户端调用服务器端的过程,完成一个累加的功能。 首先我们建立一个空白的vcl form 应用程序,并放置几个控件,如图所示: 其中有三个控件,一个kbmMWSever1,一个kbmMWTCPIPIndyServerTransport1,还有一个就是启动按钮。 阅读全文
posted @ 2019-07-01 14:19 业容天 阅读(59) 评论(0) 推荐(0)
摘要: 安装前请册除原有的FR控件。 1. "Tools|Environmet options..."中的"Library"标签面下"Library path"添加FastReport路径。 FastReport\FastQB FastReport\FastScript FastReport\Source 阅读全文
posted @ 2019-07-01 13:26 业容天 阅读(2252) 评论(0) 推荐(0)
摘要: 一、使用TfrxReport 组件工作1、加载并存储报表默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。如果你决定在文件中存储报表窗体或者是数据库的 Blob字段(他提供了非常大的弹性,你能够在非编译程序中修改),你必须使用“Tfr 阅读全文
posted @ 2019-07-01 13:24 业容天 阅读(1601) 评论(0) 推荐(0)
摘要: 更新至kbmmw 5.09. (2019.5.26) 目前的KbmMW 最新版是4.0 beta 版,它支持最新的delphi XE2 ,同时支持win32,win64,mac osx的编译开发。 增加了原生的JSON 的支持(看来JSON 是越来越热了:)),同时提高了http web 的功能,作 阅读全文
posted @ 2019-07-01 13:23 业容天 阅读(109) 评论(0) 推荐(0)
摘要: 目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下。如有不对之处,可以拍砖。 1. DELPHI 自身提供的DataSnap 从delphi 3 开始,delph 阅读全文
posted @ 2019-07-01 13:17 业容天 阅读(167) 评论(0) 推荐(0)
摘要: 随着各种应用系统越来复杂,用户终端类型越来越多,传统的C/S 系统面临着越来越多的问题和挑战,我们先看一下C/S 结构的 架构图: 客户端系统一般通过数据库的客户端与数据库连接,然后通过SQL 语句访问数据库服务器,数据库根据客户端的请求返回数据,在简单的系统里面 这种方式基本上没有什么问题,而且开 阅读全文
posted @ 2019-07-01 13:16 业容天 阅读(44) 评论(0) 推荐(0)
摘要: 创建数据库应用 时间过的真快,距离上次写Delphi+Apache 开发动态网站已经快一年了,Borland 的Delphi 7都发布快半年了,一直没有时间静下写文章,今天就写一下怎么创建数据库应用,其实网站的数据库和普通的客户端应用差不多,唯一的不同就是那些可视化控件不能再用了,虽然delphi 阅读全文
posted @ 2019-07-01 12:18 业容天 阅读(99) 评论(0) 推荐(0)
摘要: 在讨论多层开发前,先谈一下老的C/S 程序。 几个月前,我的一个朋友找我,说是我以前给他做的一个系统,原来是在局域网的运行的,现在有两个校区,另外一个校区也想使用, 两个校区都可以上互联网,让想办法解决。我去看了一下,是我10年前给开发的c/s 系统,源代码早都不见了。我说可以按现在的模式 重新开发 阅读全文
posted @ 2019-07-01 12:17 业容天 阅读(87) 评论(0) 推荐(0)
摘要: 近2年,随着智能手机及平板电脑的快速发展,同时伴随着3G 网络的逐渐普及,移动开发越来越受到开发人员的青睐,而谷歌推出的Android 系统以其开放、优秀很快受到开发人员的推崇,很多知名网站都推出了Android 客户端版本,例如腾讯、新浪、淘宝都有对应的版本。同时很多数据库应用程序都从原来的win 阅读全文
posted @ 2019-07-01 12:09 业容天 阅读(115) 评论(0) 推荐(0)
摘要: 有网友问我常用的控件及功能。我先大概整理一下,以后会在文章里面碰到时再仔细介绍。 Devexpress VCL 这个基本上覆盖了系统界面及数据库展示的方方面面,是做桌面系统必备的一套控件,目前的版本是2011.2.3, 支持win32 及win64。 AutoUpgrader 这个是自动更新的一个小 阅读全文
posted @ 2019-07-01 12:07 业容天 阅读(62) 评论(0) 推荐(0)
摘要: 随着现在各种js 框架(例如extjs,Jquery)的迅猛发展,很多网站都开始使用这些框架开始设计 web 页面,而且为了提高用户体验,大量使用了AJAX 技术,可以动态实现很多网页内容, 本文就以extjs 的grid 为例,介绍一下使用webbroke的服务器 与js 框架的交互。 先看一下下 阅读全文
posted @ 2019-07-01 12:05 业容天 阅读(66) 评论(0) 推荐(0)
摘要: 使用delphi 开发 web(二)动态脚本的实现 看了前面的文章同学,都会认为delphi 开发web比较麻烦,没有PHP 和ASP 方便。 因为每次要改动网页的内容,就要重新编译一次,重新发布一次,这样也太麻烦了。那么我们就 做一个类似PHP 的动态web 服务器吧,一次编译发布后,就不用再改了 阅读全文
posted @ 2019-07-01 11:58 业容天 阅读(237) 评论(0) 推荐(0)
摘要: 使用delphi 开发 web(三)动态脚本里面使用数据库 在主程序里面把数据库访问控件设置并注册好,在脚本里面使用数据库就非常简单。 可以类似下面的脚本访问数据库。 <%uses SysUtils, Classes;var aaa,rndnum,bb:string; i,num:integer;  阅读全文
posted @ 2019-07-01 11:58 业容天 阅读(145) 评论(0) 推荐(0)
摘要: 用delphi6+Apache 开发动态网站(创建一个简单的网页) 用delphi6+Apache 开发动态网站(一) 创建一个简单的网页 随着Internet 的飞速发展,动态网页的开发方法五花八门,有ASP,JSP,PHP,CGI等等,其中web server主要 集中在IIS,Apache等上 阅读全文
posted @ 2019-07-01 11:57 业容天 阅读(171) 评论(0) 推荐(0)
摘要: 使用delphi 开发 web(一) webbroke 简介 从delphi 3 开始,就可以支持使用webbroke 技术开发基于web 服务器。当时主要是支持CGI和ISAPI. CGI 其实就是一个类似控制台的可执行程序,将其放入web 服务器的可执行目录,每次web 服务器调用这个可执行程序 阅读全文
posted @ 2019-07-01 11:56 业容天 阅读(317) 评论(0) 推荐(0)
摘要: BussinessSkinForm 入门教程 By 刘家君(qufo) 作者:刘家君 工作单位:福建省 泉州鹭燕医药有限公司 职务:网络管理员 网名:qufo Mail:qufo@tom.com,qufo@163.com QQ:18185579 可任意转载 自由发布 ,但不要抹去我的名字及修改其中重 阅读全文
posted @ 2019-07-01 11:52 业容天 阅读(1045) 评论(1) 推荐(0)
摘要: 1、先放bsBusinessSkinForm、bsSkinData、bsStoredSkin各一个到窗体上 2、修改bsBusinessSkinForm的SkinData属性为bsSkinData1 3、修改bsSkinData1的StoredSkin属性为bsStoredSkin1 4、修改bsS 阅读全文
posted @ 2019-07-01 10:54 业容天 阅读(1441) 评论(1) 推荐(0)
摘要: uniGUI试用笔记(一) 通过向导创建一个uniGUI应用服务器,工程中有三个文件: TUniServerModule = class(TUniGUIServerModule) TUniMainModule = class(TUniGUIMainModule) TMainForm = class( 阅读全文
posted @ 2019-07-01 10:01 业容天 阅读(1401) 评论(0) 推荐(0)