我的Client端修改不了 DBGird中的字段内容,我把ClientDataSet的readOnly设成了flse, DBGrid的readOnly设成了false, 服务器端的DataSetProvider的poReadOnly设成了falsea 在DBGrid中还是修改不了原来的内容,就像只读一样,但可以新增记录,这是为什么?

解决方案 »

  1.   

    修改后要
    ClientDataSet1.ApplyUpdates(-1);才能生效
      

  2.   

    clientdataset1的afterpost和afterdelete事件中加入
    clientdataset.applyupdates(-1);
      

  3.   

    applyupdate;
    你的dbgrid不会是只读吧?
      

  4.   

    查看你的DBGrid的选项里是否含有RowSelect(行选择),并且确保DataSource的AutoEdit属性为True;
      

  5.   

    如果不能编辑,可能原因:clientdataset.readonly:=true,一般不喜欢控制provider的readonly属性,在某个字段的onsettext事件中测试一下改变字段内容时各个控件的readonly属性即可。
      

  6.   

    对不起,错了。如果clientdataset.readonly=true 那么就不可增加,可以增加,排除是clientdataset。readonly的问题。
      

  7.   

    在客户端已经增加,并且dbgrid也有显示,并且已经applyupdates了。但为什么用locate还是找不到那条记录呢?在sql 数据库中直接添加都可以找到。