在ClientDataSet中,在浏览状态下,怎么才能修改数据集中某一条数据的值,而不改变记录的状态!做这个的主要目的是在用户干预的情况下,通过存储过程修改了记录值,而客户端界面的值及部分按钮的状态也要随存储过程中修改的字段值的变化而变化!就好像是RefreshRecord一样!另外:我为什么不能用RefreshRecord;始终提示NO KEY,设置了KEY也是一样报错!

解决方案 »

  1.   

    比如用户通过单击某一按钮,调用了一个存储过程,该存储过程将字段的值从原来的1改为2了,客户端该字段的值也应该变为2才对,如果直接改ClientDataSet的字段值的话,会将记录状态改变,记录状态的改变又将导致界面按钮状态的改变!如果用刷新的话,效率太低,很难接受!现在就是想找一种方案,通过代码改了值以后,在不保存的情况下,将记录状态回到浏览状态,且修改的数据要保留!
      

  2.   

    试试这个。
    ClientDataSet1.MergeChangeLog
      

  3.   

    应该是先 RefreshRecord 取得当前数据库已经变化了的数值才对啊>>始终提示NO KEY
    应该是设置 CDS 对应的 dataset中的字段为key