博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用delphi 开发多层应用(八)客户端更新数据到kbmMW服务器
阅读量:6839 次
发布时间:2019-06-26

本文共 1234 字,大约阅读时间需要 4 分钟。

   上次写了从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  都成功生成,并且顺利执行了。

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

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

 

 

转载地址:http://joqkl.baihongyu.com/

你可能感兴趣的文章
hive的变量传递设置
查看>>
apache-shiro杂记(三) 用了apache-shiro后,HttpSession.getServletContext() API无法正常工作了...
查看>>
eclipse 中的 maven run configurations
查看>>
spring 项目中的一个异常
查看>>
CentOS PPTP ×××
查看>>
电子工程师必须知道的10个网站 !!!
查看>>
我的友情链接
查看>>
防Xss攻击,包含富文本编辑器的处理
查看>>
MyBatis延迟加载
查看>>
利用MAVEN打包可运行jar包,包括依赖的第三方包
查看>>
Java调用 shell脚本阻塞
查看>>
rabbitmy实战
查看>>
mysql-Mac终端下遇到的问题总结
查看>>
表空间迁移(二)
查看>>
准备mysql函数库和PHP文件
查看>>
初学者应该了解的编程陷阱:javascript篇
查看>>
【安全牛学习笔记】手动漏洞挖掘(三)
查看>>
硬链接和软链接使用,以及区别
查看>>
history的详解与使用
查看>>
随机数
查看>>