这个Dbgrid又要显示数据又要能够在其中编辑添加数据,但它的数据源是通过TQuery用select 语句查询出来的表,我每次在Query中append它就告诉我不能修改一个只读的表。

解决方案 »

  1.   

    Qdata.RequestLive := true;
       // Qdata.Append ;
        DataSource1.Edit ;
    还是不行
      

  2.   

    Tquery无此功能;
    select直能返回数据集,TTable可用;
      

  3.   

    但我又不得不用Tquery,因为要对表中的两个字段进行筛选,用TTale的过滤条件的话,他好像只能对一个字段进行筛选。
      

  4.   

    不需要其他什么,dbgrid本身就可以做到添加、删除、修改!比如说你有一些数据集在dbgrid中显示(dbgrid的option中的dgedit要设置成true),这个时候(例如):
    修改:
    如果你点击其中的cell就可以进入edit状态,可以修改数据,当你把焦点由当前记录转到其他记录的时候,dbgrid就帮你保存了你刚才的修改!
      

  5.   

    "但我又不得不用Tquery,因为要对表中的两个字段进行筛选,用TTale的过滤条件的话,他好像只能对一个字段进行筛选。"不是吧,两个条件用and连起来,没问题的。
      

  6.   

    TQuery.RequestLive := True;
    修改这个属性,有问题吗?
      

  7.   

    那你可以自己重新写一个程序吗?
    用query修改数据
      

  8.   

    TQuery.RequestLive := True;
    修改这个属性,有问题吗?
      

  9.   

    sql语句贴出来看看
    要想修改动态数据集,sql语句有要求的,比如必须是单个表,不能有order by.