在clientdataset1的afterpost事件里加入一句:
ClientDataSet2.Data :=clientdataset1.Delta;
    

解决方案 »

  1.   

    To cobi:
       你的不对。
    我在程序里的:ClientDataSet2.Data:=DataSet.Data;只是为了返回错误的记录。这里
    如果写为:ClientDataSet2.Data:=DataSet.Delta;程序为说,'Delta is empty'
    然后再通过DataSet.FieldByName('name'),来找到不同的值,
    现在是想得到CurValue,会出错,而别的不会。
       请问是什么原因????
      

  2.   

    我觉得原因在于可能你访问数据时CursorLocation设置为客户端游标。因为客户端游标读取数据之后就与服务器断开了连接,因此不可能得到服务器上数据的当前值(即CurValue)。
      

  3.   

    To ChipHead:
         你说的CursorLocation在哪里?我客户端只有一个TClientDataSet,他好象没有这个设置啊,按书上的说法,当发生错误时,服务器会自动向客户端返回错误数据,而且是OldValue,NewOld,CurValue??
       难道我理解错了???
       
      

  4.   

    CursorLocation是TTable、TQuery等组件的一个属性,TClientDataSet是通过TDataSetProvider组件从上述组件中获取数据的,本身并没有这个属性。
    文档上确实是这么说的,但是OldValue、NewValue和CurValue本身并不总是可用的,要根据实际应用环境才能决定。
    为什么一定要得到CurValue呢?看看有没有其他解决办法?
      

  5.   

    To ChipHead:
       如果客户端获取了这几个值,就可以让他自己来处理错误啊。
      

  6.   

    那么可以根据当前记录的Primary Key查询数据库获得当前值。
      

  7.   

    To ChipHead
       可以具体讲讲么??