使用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 ,我们就可以显示数据库了,如图

 

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

服务器端。



 

目录
相关文章
|
1月前
|
SQL 调度 数据库
开发YashanDB数据库?用 DBeaver for YashanDB 更顺手
数据库开发复杂易错,尤其在企业级场景中。为提升效率,YashanDB 团队基于 DBeaver 开源工具打造专属解决方案——DBeaver for YashanDB。它支持多类型数据库对象管理(表、视图、函数等),适配 YashanDB 特有表结构(HEAP、LSC),提供智能补全、语法高亮、SQL 调试等功能,让开发更高效流畅。推荐用于数据库应用开发团队、高频调试用户及中大型企业统一工具栈场景。
|
1月前
|
SQL 数据可视化 IDE
开发数据库不想写命令?YashanDB Developer Center 帮你轻松搞定
YashanDB Developer Center(YDC)是一款可视化的数据库开发工具,专为提升数据库开发效率而设计。它通过图形化对象管理让数据库对象清晰可见,提供智能SQL编辑器支持语法高亮与自动补全,实现PL调试的图形化操作,帮助快速定位问题。此外,操作记录可追溯,多端灵活部署,适配多种场景。无论是中大型企业研发团队,还是不熟悉命令行的业务开发者,YDC都能显著优化开发体验,堪称YashanDB的“可视化IDE”。
|
3月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
93 19
|
3月前
|
人工智能 Cloud Native 多模数据库
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
|
3月前
|
数据管理 关系型数据库 MySQL
数据管理服务DMS支持MySQL数据库的无锁结构变更
本文介绍了使用Sysbench准备2000万数据并进行全表字段更新的操作。通过DMS的无锁变更功能,可在不锁定表的情况下完成结构修改,避免了传统方法中可能产生的锁等待问题。具体步骤包括:准备数据、提交审批、执行变更及检查表结构,确保变更过程高效且不影响业务运行。
150 2
|
3月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课16 接入PostGIS全功能及应用举例
本文介绍了如何在PolarDB数据库中接入PostGIS插件全功能,实现地理空间数据处理。此外,文章还提供了使用PostGIS生成泰森多边形(Voronoi diagram)的具体示例,帮助用户理解其应用场景及操作方法。
92 1
|
4月前
|
关系型数据库 OLAP API
非“典型”向量数据库AnalyticDB PostgreSQL及RAG服务实践
本文介绍了非“典型”向量数据库AnalyticDB PostgreSQL及其RAG(检索增强生成)服务的实践应用。 AnalyticDB PostgreSQL不仅具备强大的数据分析能力,还支持向量查询、全文检索和结构化查询的融合,帮助企业高效构建和管理知识库。
235 19
|
4月前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
96 11
|
4月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
4月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
171 2

热门文章

最新文章