使用delphi 开发多层应用(七)简单的kbmMW多层数据库访问服务

      刚写完几个多层的例子,本来准备再写点其他稍微复杂的例子,很多同学就问数据库访问的方法,既然这样,就先写一下

数据库访问的过程与方法。kbmMW 支持很多数据库访问方式和控件,前面在安装时已经说过了。由于delphi 已经在d7 以后

不再推荐使用其传统的数据库方式BDE了,尤其是在delphi XE2 由于支持win64, 已经不支持使用BDE 了,为了演示方便,本文

后台数据库选择使用完全免费的firebird。firebird 是一个非常短小精悍的关系数据库,支持存储过程、触发器等常用功能。

有兴趣的可以在http://www.firebirdsql.org/ 下载。访问firebird 数据,本文使用devart 出品的IBDAC,如果没有这个的话,可以

使用delphi 自带的IBexpress 代替。

    继续打开我们以前的例子,再from 里添加以下几个控件

  

 

IBCConnect 控件里面设置我们要访问的数据库配置。

kbmMWIBCConnectionPool 是数据库访问池,它的maxconnecions提供了数据库池连接的最大值,这个值可以根据系统的资源和

访问量来定,太大的话,对服务器资源要求太多,太小的话,会影响客户端访问的性能,同时cacheperformnce、MaxcacheAge、

maxCacheEntries、maxcacheRecordcount 用来控制数据库的缓冲情况,例如,如果多个客户端请求同一数据集的话,不用再到数据库

里面读取,在应用服务器里面直接返回到客户端,减少数据库的读取,提高系统的访问效率,这几个参数也是要根据实际应用来选取,没有

最好的,只有最合适的。我们今天的例子,暂时都使用默认值。

kbmMWInterbaseMetaData 主要是用来控制生成访问数据库SQL的具体语法的,例如不同的数据库对字段、参数、表名的表达不完全一样,

这个可以根据具体数据进行定制。

设置完上面的控件,我们进行下一步操作,点file->new->others... 出现kbmMW service wizard.  出现

  

这一次,我们选择query service / kbmMW_1.0,然后点下一步,

选择我们要使用的数据库访问方式devart ibdac,再选数据库连接池的位置,点下一步,

然后一路点下去,直到最后生成代码。最后就生成一个TkbmMWqueryservice,并出现下面的界面

可以看见上面几个allowclient... 是用来控制客户端访问方式的,我们今天要写一个

在客户端使用sql 语句访问服务器的例子,所以把Allowclinetstament 设为True,

同时为了客户端能够访问服务器的query,设置query属性为kbmMWIBDACQuery1,

设完后,在form1 里面注册这个服务:

procedure TForm1.FormCreate(Sender: TObject);var  sd:TkbmMWCustomServiceDefinition;

begin   sd:=kbmMWServer1.RegisterService(Txalionsrv,false);   sd:=kbmMWServer1.RegisterService(TkbmMWQueryService1,false);

end;

服务器端就设计好了,现在可以编译程序并运行了。

现在打开客户端程序,在from 上添加以下几个控件,

kbmMWClientQuery1: TkbmMWClientQuery;
 kbmMWBinaryStreamFormat1: TkbmMWBinaryStreamFormat;
 DataSource1: TDataSource;
 DBGrid1: TDBGrid;
  kbmMWClientConnectionPool1: TkbmMWClientConnectionPool;

如图所示

并设置kbmMWClientQuery1的属性如下图

并按下图设置 kbmMWClientConnectionPool1 的属性

 

好了,更改button1 的点击事件

procedure TForm2.Button1Click(Sender: TObject);begin   kbmMWClientQuery1.query.clear;   kbmMWClientQuery1.query.add('select * from rssj');    kbmMWClientQuery1.Open;end;

编译运行,并点击button1 ,我们就可以显示数据库了,如图

 

好了,我们已经把服务器端的数据显示到客户端了,今天就先到这里,后面再写数据库的修改和更新到

服务器端。

 

时间: 2024-10-25 00:34:54

使用delphi 开发多层应用(七)简单的kbmMW多层数据库访问服务的相关文章

使用delphi 开发多层应用(十九) ios通过soap 访问kbmmw服务器

      随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此 无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提供了C 的客户端,可以使用xcode连接 kbmmw的C 客户端来访问kbmmw 服务器,但是功能有限,而且要熟悉xcode),对于急着想在ios 使用kbmmw 服务的同学,可以先使用kbmmw 的webservice 方式访问kbmmw 服务器.   下面我就介绍以下如何在ios 访

使用delphi 开发多层应用(三)Delphi常用多层框架介绍

    目前在delphi 开发多层应用的框架基本上集中在以下几种,每种开发框架都有自己的优缺点,没有最好的,大家可以根据 自己的实际需求选择相应框架,我把我本人在使用几种框架的体会与大家分享一下.如有不对之处,可以拍砖.      1. DELPHI 自身提供的DataSnap       从delphi 3 开始,delphi 自身就开始支持多层开发,后期的版本逐步加强三层开发功能,在delphi 6 以后, 把这一功能叫Datasnap,并且每个都有很多变化,包括DBExpress 的数据

使用delphi 开发多层应用(四)kbmMW 的安装与配置

更新至kbmmw 5.04.  (2017.12.14) --------------------- 目前的KbmMW 最新版是4.0 beta 版,它支持最新的delphi XE2 ,同时支持win32,win64,mac osx的编译开发. 增加了原生的JSON 的支持(看来JSON 是越来越热了:)),同时提高了http web 的功能,作者已经用最新的KbmMW 替换了 原来使用aspx 的下载网站,其使用kbmMW 的web服务,并使用AJAX 来实现数据列表,经过我的使用,效果还不错

使用delphi 开发多层应用(二十一)使用XE5 RESTClient 直接访问kbmmw 数据库

     delphi XE5 出来了,增加了android 的开发支持,另外增加了一个RESTClient 来支持访问REST 服务器. 这个功能非常强大,可以直接使用非常多的REST 服务器.同时也可以支持访问kbmmw 的web 服务器, 并完美的通过JSON支持使用kbmmw 的JSON 数据格式.使我们非常方便的在win32,win64,mac os,ios 和android 上访问kbmmw 的数据库.     首先我们建立一个可以返回JSON 的kbmmw web 服务器.这个可以

第十三章-Delphi开发数据库应用程序概述(二)(2)

13.3.3 数据库窗体专家和数据库操作台(DBD) Delphi为用户开发简单的数据库应用程序提供了一个开发工具叫做"数据库窗体专家"(Database Form Expert),在Delphi系统菜单Tool菜单下可以找到. 数据库窗体专家能够自动生成简单的数据库应用程序中所必须完成的许多任务,它还可以生成基于单个数据库表的应用程序窗体或基于主要──明细型多个数据库表的应用程序窗体,数据库窗体专家能够自动完成的任务如下: ● 放置数据库部件到窗体中(TDataSource部件) ●

第十三章-Delphi开发数据库应用程序概述(一)(2)

13.2.1 Delphi的数据库特性 跟其他的应用程序一样,Delphi提供了许多部件以方便地创建数据库应用程序.数据库对象的数据成员既可在设计阶段设置,也可在运行阶段通过程序代码进行设置.Delphi的部件板上提供了两页数据库应用程序开发中所要使用的部件: 数据访问页(Data Access Page)上的部件用于直接访问数据库中的数据库表. 数据控制页(Data Control Page)上的部件用来与用户交互,显示.修改数据库中的数据. 数据库应用程序首先是利用Delphi提供的数据库部

第十三章-Delphi开发数据库应用程序概述(一)(1)

13.1 数据库系统概述 数据库系统为我们提供了一种把与我们的工作和生活紧密相关的信息集合在一起的方法,它还提供了在某个集中的地方存储和维护这些信息的方法.数据库系统主要由三大部分组成:数据库管理系统(DBMS:它是专门负责组织和管理数据信息的程序).数据库应用程序(它使我们能够获取.显示和更新由DBMS存储的数据).数据库(按一定结构组织在一起的相关数据的集合). 一般来说,DBMS和数据库应用程序都驻留在同一台计算机上并在同一台计算机上运行,很多情况下两者甚至结合在同一个程序中,以前使用的大

Delphi开发98屏幕保护预览程序

大家都知道windows屏幕保护程序的作用,而且新的屏幕保护程序越来越漂亮.如果在win98的桌面右键菜单选属性,就弹出显示器设置界面,有一个标签是设置屏幕保护程序的. 在该页的画面上,有一个显示器图案,如果你选择win98所带的屏幕保护程序,这个屏幕保护程序就会在这个小'显示器'上自动运行,你可以直接看到运行效果.这功能大大方便了屏幕保护程序的选择,这就是win98对屏幕保护程序的新增接口:预览功能. 目前大多数新推出的屏幕保护程序都支持这个接口. 屏幕保护程序从它的诞生那时起,在同一时刻只能

Android LibGDX游戏引擎开发教程(七) 中文字体的显示和绘制(上)

在字体的显示和绘制中,Libgdx的作者(Mario Zechner,美国人)给我们提供了一个非常好用的工具 --Hiero,那么下面就来看看它具体的使用方法. 一.Hiero工具的使用 1.Hiero工 具的下载地址 开发教程(七) 中文字体的显示和绘制(上)-android 绘制字体"> 2.下载结束后,双击hiero.jar文件打开,我们可以看到Hiero的一些基本功能,相比来说作者做的 还是比较简单易懂的.从界面上知道,它包括很多选项,可以制作特效.改变背景颜色.设置内间距等等,右