我用DBGrid,DataSource和TQuery组件,想修改DBGrid中显示出来的数据库中的数据,
总是提示错误:can't modify a read-only dataset,请问怎么整啊???? 

解决方案 »

  1.   

    修改你的 TqdoQuery 属性中的  ReadOnly属性为  false;
      

  2.   

    can't modify a read-only dataset不能对只读的数据集体进行修改看看数据集的ReadOnly属性
      

  3.   

    can't modify a read-only dataset
    不能   修改   一个 只读      数据集
      

  4.   

    把tquery的autoapply改为true,而且最好给tquery加个关联的TUpdateSQL控件,并设置相应的SQL语句
      

  5.   

    1.如果你使用的是TQuery组件的话,当中的SQL语句是单表操作的话是不会出现楼主的错误的。
    2.如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的。你需要使用单表操作编辑,可以联合DBLookupList来完成你的目的。
      

  6.   

    .如果SQL语句是多表联合查询得到的,那么这时候数据集是只读的,
    其实加个Tupdatesql就可以写啦,不用那么复杂
      

  7.   

    上面几位讨论的问题,是不是具有普遍性的,我的意思是说BDE,ADO,ODAC,都可以向上面这么处理呢?其它的没用过了。我之前用ODAC是也遇见了楼主的问题。后来放弃了DBGrid,用的StringGrid。也差不多,因为我做录入多一些,查询是用image的画布搞定。
      

  8.   

    ADODataSet.FieldByName('sss').ReadOnly := False;
      

  9.   

    如果是用TQuery控件的话,要设置RequestLive为true.