TClientDataSet倒是有RefreshRecord方法。不妨看看源码里面是怎么实现的?

解决方案 »

  1.   

    传替一个SQL语句,就可以实现,我现在也在做这个东西,就是服务器有可能对某个商品进行删除,门店要取得同步记录,从服务器传一条SQL语句,在客户端执行就可以搞定。
      

  2.   

    我是用SQL语句来更新服务器。但问题是执行SQL语句后不能使客户端
    结果集与服务器同步。我想同步更新后的那一条记录而不是同步所有记录。suary,高手能否给我一个例子?用ADO。[email protected],若你做的和我做的是一个东西,
    你可帮了我大忙了。
      

  3.   

    基本思路错误!
    当多个人在操作的时候,你怎么能确定哪个商品被删除了?你不能光考虑一个客户端的操作。
    我建议你采用
    select * from 表 where 条件
    的形式,需要时从服务器将尽可能少的数据取过来
    而不要使用
    select * from 表
    的形式
      

  4.   

    ps:
    bisc_sunny(嶈亴橆湻鑰鑷甯櫨鏅笢鐨勯潚),你哪找的这些字,看的我眼都花了:))
      

  5.   

    但我知道VB里用Resync实现得了同步,为什么用Delphi根本实现不了...fredfei能读出我的这些字吗?:)
      

  6.   

    不是说不行,比如你游标使用服务器端的Dynamic游标,就可以解决你的问题,也用不着Resync,但是网络负担较重另外,那些字...难住我了
      

  7.   

    当然,这种系统使用Dynamic游标根本没法用,在Grid里都可看出来一行一行往外冒:)然而!难道Resync在Delphi中不能用吗???
      

  8.   

    嘻嘻..
    使用clientdataset比较好了.
    如果更新一列数据之后不想重新检索数据的话,您看一看clientdataset的更新机制就知道怎么做了.
    clientdataset在applyupdates() 的时候只是将已更新的数据返回给服务器端,(clientdataset有delta这一属性,用来包装更新数据信息).所以您需要做的只是在更新之后clientdataset1.MergeChangeLog将本地更新信息覆盖中dataset中的数据就行了.不需要从服务器重新检索数据.
    ===========try it==========