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

简介: 上次写了从kbmMW服务器给客户端返回数据,我们实现了数据的查询功能,但是当客户端对数据进行了增加、更新、删除的操作, 我们必须把这些操作返回到服务器端,并对后台数据库进行更新。kbmMW 可以很方便的实现这一功能,今天就做一个更新数据到 服务器的例子。

   上次写了从kbmMW服务器给客户端返回数据,我们实现了数据的查询功能,但是当客户端对数据进行了增加、更新、删除的操作,

我们必须把这些操作返回到服务器端,并对后台数据库进行更新。kbmMW 可以很方便的实现这一功能,今天就做一个更新数据到

服务器的例子。

   还是在昨天的基础上,我们要把客户端的信息更新到服务器上,首先需要在服务器端的Tkbmqueryservice 设置允许客户端更新

的权限,如图

即把allowclient 开头的几个属性都设为True;

同时为了保证客户端可以插入数据,要设一下TkbmMWIBDACResolver的insertkeyfields 为 True.

这样服务器端就可以了,现在编译并运行。

在客户端,我们放置一个TDBNavigator 和一个按钮。如图

通过TDBNavigator 可以把对数据更改保存的客户端,再通过"更新到后台" 按钮把数据写到服务端。

同时,由于我们使用的是直接sql 语句读取数据的,因此,为了能够在服务器端更新数据,必须提供两个

参数,一个是tablename, 一个是keyfeilds. 所以我们更改一下读取数据的过程:

procedure TForm2.Button1Click(Sender: TObject);
begin
kbmMWClientQuery1.close;
kbmMWClientQuery1.Query.Clear;
kbmMWClientQuery1.Query.Add('select * from RSSJ');
kbmMWClientQuery1.KeyFields:='XH'; // 设置主键
kbmMWClientQuery1.TableName:='RSSJ'; // 设置表名
kbmMWClientQuery1.Open;

end;


这样,我们就可以先读取数据,然后编辑数据,使用TDBNavigator 确认更改,最后再更新到后台服务器及数据库服务器,

kbmMW 会根据更改的delta  自动生成更新的sql 语句,然后写入数据库。把客户端的数据变化更新到后台非常简单,代码

如下:

procedure TForm2.Button3Click(Sender: TObject);
begin

kbmMWClientQuery1.Resolve();
end;

下图为运行结果

为了更好的说明这个问题,我们再客户端分别作增加,更新,删除三个操作,然后更新到后台,

同时在服务器端使用devart 的dbmonitor 来检测一下,看看服务器是怎么生成sql 语句的。

通过这个检测,我们很清楚的可以看到各个操作的sql  都成功生成,并且顺利执行了。

今天我们完成了单表的更新操作,但是在实际开发中,经常遇见的是多表同时更新的事务操作,多个表要要么同时更新成功,要么全部滚回。

今天太晚了,我们下次再讲事务操作吧。



 

 

目录
相关文章
|
19天前
|
开发框架 JavaScript 前端开发
|
20天前
|
网络协议 C# 开发者
WPF与Socket编程的完美邂逅:打造流畅网络通信体验——从客户端到服务器端,手把手教你实现基于Socket的实时数据交换
【8月更文挑战第31天】网络通信在现代应用中至关重要,Socket编程作为其实现基础,即便在主要用于桌面应用的Windows Presentation Foundation(WPF)中也发挥着重要作用。本文通过最佳实践,详细介绍如何在WPF应用中利用Socket实现网络通信,包括创建WPF项目、设计用户界面、实现Socket通信逻辑及搭建简单服务器端的全过程。具体步骤涵盖从UI设计到前后端交互的各个环节,并附有详尽示例代码,助力WPF开发者掌握这一关键技术,拓展应用程序的功能与实用性。
42 0
|
20天前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
56 0
|
20天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
36 0
|
20天前
|
前端开发 安全 开发者
JSF文件上传,让Web应用如虎添翼!一招实现文件上传,让用户爱不释手!
【8月更文挑战第31天】在现代Web应用开发中,文件上传是重要功能之一。JSF(JavaServer Faces)框架提供了强大的文件上传支持,简化了开发流程。本文将介绍JSF文件上传的基本步骤:创建前端表单、处理上传文件的后端Action类、将文件保存到服务器指定目录以及返回结果页面。通过示例代码,我们将展示如何利用JSF实现文件上传功能,包括使用`h:inputFile`控件和`ManagedBean`处理上传逻辑。此外,JSF文件上传还具备类型安全、解耦合和灵活性等优点,有助于提升程序的健壮性和可维护性。
24 0
|
22天前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
15 0
|
10天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
8天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
7天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
8天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考

热门文章

最新文章