你用QUERY.edit
再,试一下了

解决方案 »

  1.   

    很難說﹐看情況﹐多個表不行﹐要用updates組件
      

  2.   

    Query1.CachedUpdate也要设为True啊!!!
      

  3.   

    有些query的返回
    值是只读的
    具体看一下帮助
    有些象order,instinct
    之类的语句生成的结果
      

  4.   

    QUERY部件获得"活动"(能修改)的查询结果数据的约束条件:
    1、当查询PARDOX或DBASE 数据库中的表时,必须满足以下的约束条件:
       (1)查询只能涉及到一个单独的表
       (2)sql语句中不能包含order by 命令
       (3)slq语句中不能含聚集运算符sum和avg
       (4)在select后的字段列表中不能有计算字段
       (5)在select语句where部分只能包含字段值与常量的比较运算,这些比较运算符是
            like、>、<、>=、<=,以及各比较运算符之间可以有并和交运算如and和or
    2、当通过sql语句查询数据库服务器中的数据库表时,必须满足一下的一些条件:
       (1)查询只能涉及到一个单独的表
       (2)sql语句中不能包含order by 命令
       (3)slq语句中不能含聚集运算符sum和avg 
    因此要修改返回的只读数据可以使用updatasql控件或在用另外一个query对查询的结果进行修改也行。
      

  5.   

    RequestLive:=True而且Query1.CachedUpdate也要设为True,SQL语句也要符合条件才能编辑QUERY查询结果
      

  6.   

    好像用了Order by 后是不能编辑纪录的。
      

  7.   

    to radar():
    老兄,你真绝,抄了这么一段上来,我上次准备抄的,又没有那个兴致!
      

  8.   

    我从来没有想到delphi中的query可以修改。
    我全是用的sql语句来做的。
    这样修改好像不爽。
    这么多条件太无聊。而且你们修改是不是
    DBGrid+Query+DataSource方式直接在DBGrid里头改正一些东西?????
      

  9.   

    step 1: query1.open;
    step 2: query1.edit;
    绝对正确给我分我会告诉你更多
      

  10.   

        致liao2001(LL):
       上述各种办法我都试过,行不通,也许在Query中加上Order by后的确不能修改,但我确实希望通过Query查询结果后在DBGrid中对记录进行一些必要的修改,你是否有可行的其它办法?能否指点一下?
      

  11.   

      好久不搞数据库了,下面两种可以试试:
      1。传递SQL语句。将在DBGrid中要改的,传给服务器来改  2。存储过程。同上。
      

  12.   

    SQL语句中的Order by 可以在前台用Query1.Orderbyfieldname(FieldName)实现。
    用这种方法便实现既排序又可以编辑的目的.