如何对query查询出来的数据进行修改?我使用了query.edit,但总是提示dataset cannot .....edit mode,请问具体怎么做,谢谢!

解决方案 »

  1.   

    换个新的query,重新建立连接
      

  2.   

    将Query的RequestLive属性设为True,你就可以使用query.edit了
      

  3.   

    with Query4 do
      begin
        SQL.Clear ;
        SQL.Add('select * from TABLE1');
        Open;
        RequestLive :=True;
        Edit;
        First;
      end;
    上述语句执行没问题
    但:
    Query4.FieldByName('成本').AsString:=floattostr(strtofloat(Query4.FieldByName('数量').AsString)*strtofloat(Query2.FieldByName('XF_SUPPUNITCOST').AsString));
    出错:
    Query4: Dataset not in edit or insert mode.
    我想Query4已置为edit了,为什么还是不行呢,请过来人帮忙了,谢谢了
      

  4.   

    这回我用table连接表,我没说明白的是表是临时表,但还是出现同样的错误,我都快急死了,请高手帮帮忙,万分感谢!
      

  5.   

    table.open;
    table.edit;
    table.fieldbyname('name').asstring:=数值;
    table.post;
      

  6.   

    with Query4 do
      begin
        SQL.Clear ;
        SQL.Add('select * from TABLE1');
        Open;
        RequestLive :=True;
        Edit;
        Query4.FieldByName('成本').value:=floattostr(strtofloat(Query4.FieldByName('数量').AsString)*strtofloat(Query2.FieldByName('XF_SUPPUNITCOST').AsString));
        First;
      end;
      

  7.   

    with Query4 do
      begin
        SQL.Clear ;
        SQL.Add('select * from TABLE1');
        Open;
        RequestLive :=True;
        Edit;
        Query4.FieldByName('成本').value:=floattostr(strtofloat(Query4.FieldByName('数量').AsString)*strtofloat(Query2.FieldByName('XF_SUPPUNITCOST').AsString));
        First;
      end;