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

简介: 刚写完几个多层的例子,本来准备再写点其他稍微复杂的例子,很多同学就问数据库访问的方法,既然这样,就先写一下 数据库访问的过程与方法。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 ,我们就可以显示数据库了,如图

 

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

服务器端。



 

目录
相关文章
|
18天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
6天前
|
存储 搜索推荐 数据挖掘
数据库的应用
数据库在众多领域发挥着重要作用。在企业管理中,它助力客户关系、人力资源和财务管理,提升决策科学性和效率;金融领域中,银行系统、证券交易和保险行业依托数据库保障交易安全、投资决策及风险管理;医疗行业则通过电子病历管理和数据分析提高诊疗准确性并优化资源配置;电子商务运用数据库实现商品、订单管理和用户行为分析,增强购物体验;教育领域中,数据库支持学生信息、教学资源管理和教育数据分析,促进家校沟通与教学质量提升;科学研究方面,数据库促进数据共享、科研项目管理和深入数据分析,加速科学进步。
13 3
|
9天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
近日,阿里云与世界500强旗下、国内领先的教育服务提供商海亮科技集团(以下简称“海亮科技”)达成合作,联合成立“教育科技数据库创新应用中心”。双方将充分整合优势资源,共同推进教育科技领域的数据库技术研究和国产数据库的应用与发展。
44 7
|
11天前
|
SQL JavaScript 关系型数据库
Node服务连接Mysql数据库
本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。
25 0
Node服务连接Mysql数据库
|
18天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
25天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
48 6
|
1月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
66 6
|
7天前
|
SQL 安全 Java
探索研究Servlet 数据库访问
【9月更文挑战第28天】
17 0
|
1月前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
29 1
下一篇
无影云桌面