环境:delphi XE10.2.2+kbmMW5.02+uniDac7.02+FB3.0
当客户端对数据进行了增加、更新、删除的操作,我们必须把这些操作返回到服务器端,并对后台数据库进行更新。kbmMW 可以很方便的实现这一功能,今天就做一个更新数据到
服务器的例子。
还是在昨天的基础上,我们要把客户端的信息更新到服务器上,首先需要在服务器端的Tkbmqueryservice设置允许客户端更新的权限,如图
即把allowclient 开头的几个属性都设为True;
同时为了保证客户端可以插入数据,要设一下TkbmMWIBDACResolver的insertkeyfields 为 True.
这样服务器端就可以了,现在编译并运行。
在客户端,我们放置一个TDBNavigator 和一个按钮。如图
通过TDBNavigator 可以把对数据更改保存的客户端,再通过"更新到后台" 按钮把数据写到服务端。
同时,由于我们使用的是直接sql 语句读取数据的,因此,为了能够在服务器端更新数据,必须提供两个参数,一个是tablename, 一个是keyfeilds. 所以我们更改一下读取数据的过程:
procedure TForm2.Button1Click(Sender: TObject);
begin
kbmCQuery.Close;
kbmCQuery.query.clear;
kbmCQuery.query.add('select* from A00');
kbmCQuery.KeyFields:='A00_1';
kbmCQuery.TableName:='A00';
kbmCQuery.Open;
end;
这样,我们就可以先读取数据,然后编辑数据,使用TDBNavigator 确认更改,最后再更新到后台服务器及数据库服务器,
kbmMW 会根据更改的delta 自动生成更新的sql 语句,然后写入数据库。把客户端的数据变化更新到后台非常简单,代码
如下:
procedure TForm2.Button3Click(Sender: TObject);
begin
kbmCQuery.Resolve();
end;
下图为运行结果
为了更好的说明这个问题,我们再客户端分别作增加,更新,删除三个操作,然后更新到后台。
(delphi窑洞洞主)http://www.cnblogs.com/xalion/tag/KBMMW/