使用delphi 开发多层应用(九)客户端使用事务更新多个表数据到kbmMW服务器

简介: 上次说明了客户端如何把变化的数据更新到服务器端,但是在实际应用中,往往是要同时更新若干个表, 为了保证逻辑上一致,这些表的操作要么都一次成功,要么全部失败,这就需要使用事务处理。我们今天 就来说一下,怎么在kbmMW中实现事务处理。

  上次说明了客户端如何把变化的数据更新到服务器端,但是在实际应用中,往往是要同时更新若干个表,

为了保证逻辑上一致,这些表的操作要么都一次成功,要么全部失败,这就需要使用事务处理。我们今天

就来说一下,怎么在kbmMW中实现事务处理。同时也顺便讲一下kbmMW 里面命名查询(named query)的

使用,首先我们打开服务器端,在数据服务上增加一个TkbmMWIBDACQuery,如图

设置它的connctionpool 为Form1.kbmMWIBDACConnectionPool1

resolver 为kbmMWIBDACResolver1

sql 为select * from BMB

keyfieldsnames  为 BMID

tablename 为 BMB

Published 为True

最后把name 改成BMB. 同时把Form1.kbmMWIBDACConnectionPool1的maxconnections 设为5.

好了,服务器端设置好了,可以编译并运行了。

 

现在打开客户端,增加一个TkbmMWClientQuery,并设置相应的参数

注意其他参数与上一个kbmMWClientQuery 一样,唯一不同的就是在query 里面输入@bmb, 也就是直接调用服务器

端的query,这就是命名查询的使用方法,理论上,为了保证多层系统的可维护性,建议多使用命名查询,减少直接SQL 操作。

为了实现事务操作,我们还需要加一个TkbmMWClientTransactionResolver,

并如图设置相关属性,最后为了说明事务操作,我们在“更新到后台”按钮里面改成以下代码:

    with  kbmMWClientQuery2 do
begin
Open;
edit;
fieldbyname('BMNAME').AsString:='测试部门';
post;
end;

with kbmMWClientQuery1 do
begin
edit;
fieldbyname('XM').AsString:='测试人名';
post;
end;

if kbmMWClientTransactionResolver1.Resolve([kbmMWClientQuery2,kbmMWClientQuery1]) then
begin
showmessage('更新成功');
end
else
showmessage('更新失败');
end;

我们在服务器端监测sql 的执行,如下图

可以清楚的看见两个UPDATE 是在一个事务里面完成的,如果任意一个update 出问题,另外一个会跟着失败,保证了数据的一致性。

 

 

 

目录
相关文章
|
4月前
|
机器学习/深度学习 数据库 数据安全/隐私保护
服务器核心组件:CPU 与 GPU 的核心区别、应用场景、协同工作
CPU与GPU在服务器中各司其职:CPU擅长处理复杂逻辑,如订单判断、网页请求;GPU专注批量并行计算,如图像处理、深度学习。二者协同工作,能大幅提升服务器效率,满足多样化计算需求。
1856 39
|
3月前
|
存储 机器学习/深度学习 人工智能
硅谷GPU单节点服务器:技术解析与应用全景
“硅谷GPU单节点服务器”代表了在单个物理机箱内集成强大计算能力,特别是GPU加速能力的高性能计算解决方案。它们并非指代某个特定品牌,而是一类为处理密集型工作负载而设计的服务器范式的统称。
|
6月前
|
弹性计算 关系型数据库 数据库
阿里云服务器ECS是什么?ECS应用场景、租用流程及使用教程整理
阿里云ECS(弹性计算服务)是性能稳定、弹性扩展的云计算服务,支持多种处理器架构和实例类型,适用于网站托管、开发测试、数据存储、企业服务、游戏多媒体及微服务架构等场景。提供从注册、配置到部署、运维的完整使用流程,助力用户高效上云。
|
3月前
|
机器学习/深度学习 人工智能 弹性计算
2025年阿里云GPU服务器租用价格与应用场景详解
阿里云GPU服务器基于ECS架构,集成NVIDIA A10/V100等顶级GPU与自研神龙架构,提供高达1000 TFLOPS混合精度算力。2025年推出万卡级异构算力平台及Aegaeon池化技术,支持AI训练、推理、科学计算与图形渲染,实现性能与成本最优平衡。
|
7月前
|
存储 分布式计算 安全
阿里云服务器ECS实例选型参考:场景适配、应用推荐
选择阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。对于很多新手用户来说,在初次购买阿里云服务器的时候,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,性能表现更是千差万别。因此,在购买阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。本文将通过一些常见的选型场景推荐,为大家详细介绍阿里云服务器实例选型的最佳实践,便于大家在选择云服务器实例规格时做个参考。
|
5月前
|
域名解析 运维 监控
阿里云轻量服务器的系统镜像和应用镜像的区别
轻量应用服务器是阿里云推出的易用型云服务器,支持一键部署、域名解析、安全管理和运维监控。本文介绍其系统镜像与应用镜像的区别及选择建议,助您根据业务需求和技术能力快速决策,实现高效部署。
|
5月前
|
存储 弹性计算 运维
阿里云服务器全解析:ECS是什么、应用场景、租用流程及优缺点分析
阿里云ECS(Elastic Compute Service)是阿里云提供的高性能、高可用的云计算服务,支持弹性扩展、多样化实例类型和多种计费模式。适用于网站搭建、数据处理、运维测试等多种场景,具备分钟级交付、安全可靠、成本低、易运维等优势,是企业及开发者上云的理想选择。
854 5
|
5月前
|
运维 监控 Kubernetes
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代
Bitnami 曾为开源应用部署带来革命性体验,但随着 Docker 成熟与战略转向云原生,其单机多应用支持逐渐弱化。面对多应用管理分散、资源冲突、运维工具缺失等痛点,Websoft9 应运而生,提供一键部署、统一管理、智能调度等能力,全面优化单服务器多应用运维体验,成为 Bitnami 的理想继任者。
222 0
Bitnami 替代品:Websoft9 如何接力单服务器多应用时代
|
6月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
656 13