我的意思是,我用query做了一个查询表
然后我想在dbgrid里面可以直接修改数据
但是系统说是只读的?
所以我想知道如何去修改它!!!!!

解决方案 »

  1.   

    DbGrid里有个ReadOnly为False就可以直接修改
      

  2.   

    query.requestlive:=true
    query.edit
      

  3.   

    怎么突然又弹出
    table is readonly?
    为什么哦?我的数据库是可读可写的哦
      

  4.   

    我刚刚看了一下
    是默认antoedit为真哦?
    不是这个原因,那是为什么?
      

  5.   


    我又改了一下,用这种方式解决,可是系统说query找不到ID字段,下面的没有错哦
     with query1 do
      begin
        close;
        sql.Clear;
        sql.Add('update COURSE ');
        sql.Add('set  classroom ='''+edit1.Text +''',classtime ='''+edit2.Text+''',state=''3''');
        sql.Add('where ID ='''+query1.parambyname('ID').asstring+'''');
        prepare;
        open;
    end;
      

  6.   

    楼上的;
    把OPEN改为EXEC试试!
      

  7.   

    with query1 do
      begin
        close;
        sql.Clear;
        sql.Add('update COURSE ');
        sql.Add('set  classroom =:Mclassroom,classtime =:mclasstime,state=''3''');
        sql.Add('where ID ='''+query1.parambyname('ID').asstring+'''');
        parambyname('Mclassroom').asstring:=edit1.text;
        parambyname('Mclasstime').asstring:=edit2.text;
        prepare;
        open;
    end;
      

  8.   

    你的语句里面的'edit1.text'被做为字符串处理了
      

  9.   

    很显然在query里提交是EXEC而不是open
    楼上的把open该一下应该可以
      

  10.   

    首先,你是什么数据库?其次,可以这样修改数据,...
    Query.Open;
    Query.Edit;
    Query.FieldbyName('yoursField').AsString:='dancedog';
    Query.Post;
    ...
      

  11.   

    Query是一个查询控件,是只读的,本身是不能实现修改功能的,它必修和UpdateSQL控件联用。Adoquery是可以直接修改的。
      

  12.   

    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
    同意,QUERY和ADOQUERY是不同的,建议使用ADOQUERY!!!
      

  13.   

    Query1.RequestLive := True;
    或者该属性RequestLive为true;