求助,在三层数据库中如何成批添加记录到服务器! 我在客户端添加了一批记录后,如何使用clientdataset一次性更新到服务器呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用ClientDataSet的ApplyUpdate方法 一批记录的提交并不是很好的办法,因为在事务性很强的系统,这个办法就不是很好,如果采用QUERY得到的数据你就没不是很好做,但是也可以采用INSERT和UPDATE进行,一般的就直接采用ClientDataSet的ApplyUpdate方法,建议你不要过多的这样处理 要是ApplyUpdate过程中出错怎么办? 三层中对主从表的更新操作是这样的:在中间层应用服务器端那个向ClientDataSet提供数据的DataSetProvider也负责更新ClientDataSet调用ApplyUpdate方法回传的数据包。主从表查询的DataSet的更新不能由DataSetProvider自动完成,需要在DataSetProvider的BeforeUpdateRecord事件函数中加入自己写的数据更新代码,BeforeUpdateRecord事件有几个参数:SourceDS——源数据集,一般不需要用到DeltaDS——包含需要更新记录的数据集,这里只有在客户端更新过的记录。UpdateKind——更新的类型,比如是修改、插入还是删除。Applied——完成后必须设为True,指示DataSetProvider不用再执行更新操作。手动更新要分别针对修改、插入还是删除写三个处理过程,在过程里写入你自己更新物理数据库的代码,这里与两层结构的代码是一样的。在BeforeUpdateRecord事件处理函数中根据UpdateKind参数调用这几个过程。ApplyUpdate的出错可以在DataSetPrvider的OnUpdaErro或ClientDataSet的ClientDataSet1ReconcileError中处理。 求经纬度算法,高手请进,一天25小时在线等 100分求助数据库刷新问题 请教一个关于ADOconnection控件的问题,实在不知道怎么做!! 请教:Delphi中如何动态根据已有的控件(组)创建控件(组)? dbgridheh在画的时候不断闪烁,如何解决比较好!谢谢! 我的程序出这样的错误:‘消息筛选器显示应用程序正在使用中' 怎样得知当前的操作系统是否是windows xp 送100‘ delphi挂接access的问题 一个获焦点问题: 我為窗體加了一個事件,可是老出錯,大家來看看,謝謝! 用消息控制窗体最大化出现的问题
在中间层应用服务器端那个向ClientDataSet提供数据的DataSetProvider也负责更新ClientDataSet调用ApplyUpdate方法回传的数据包。主从表查询的DataSet的更新不能由DataSetProvider自动完成,需要在DataSetProvider的BeforeUpdateRecord事件函数中加入自己写的数据更新代码,BeforeUpdateRecord事件有几个参数:
SourceDS——源数据集,一般不需要用到
DeltaDS——包含需要更新记录的数据集,这里只有在客户端更新过的记录。
UpdateKind——更新的类型,比如是修改、插入还是删除。
Applied——完成后必须设为True,指示DataSetProvider不用再执行更新操作。
手动更新要分别针对修改、插入还是删除写三个处理过程,在过程里写入你自己更新物理数据库的代码,这里与两层结构的代码是一样的。在BeforeUpdateRecord事件处理函数中根据UpdateKind参数调用这几个过程。
ApplyUpdate的出错可以在DataSetPrvider的OnUpdaErro或ClientDataSet的ClientDataSet1ReconcileError中处理。