如何才能更改数据库的当前记录呢?

解决方案 »

  1.   

    DataSet.Edit;
    修改内容
    DataSet.Post;
      

  2.   

    帮我看看吧,实在找不到错在哪里了
    with adoquery1 do
    begin
    close;
    sql.Clear;
    sql.Add('update DG set visible=false');//visible是表里的字段名
    sql.Add('where ITEM=:ss');
    parameters.ParamByName('ss').Value:=fieldbyname('ITEM').AsString;//ITEM也是表里的字段名
    execsql;
    end;
    按理说应该更新了
    可是提示 fiele 'ITEM' not found
      

  3.   

    你添加一个空格看行不行
    sql.Add('update DG set visible=false ');//visible是表里的字段名 
    sql.Add(' where ITEM=:ss');
     这样试试,真不中就不知为什么了
      

  4.   

    因为你数据集已经Close了
    用另外的Query更新就不存在这个问题了
      

  5.   

    with adoquery1 do
    begin
    close;
    sql.Clear;
    sql.Add('update DG set visible=false');
    sql.Add('where ITEM="3"');
    execsql;
    end;
    但是这样就没有事.
      

  6.   

    当然没事了
    但你这样写
    parameters.ParamByName('ss').Value:=fieldbyname('ITEM').AsString;//ITEM也是表里的fieldbyname('ITEM').AsString;是取的AdoQuery1的,前面已经Close了
    所以找不到的用另外的AdoQuery处理即可。
      

  7.   

    用另外的adoquery怎么处理?能帮忙改一下吗
      

  8.   

    with adoquery1 do 
    begin 
    close; 
    sql.Clear; 
    sql.Add('update DG set visible=false');//visible是表里的字段名 
    sql.Add('where ITEM=:ss'); 
    parameters.ParamByName('ss').Value:=fieldbyname('ITEM').AsString;//ITEM也是表里的字段名 
    execsql; 
    end;
    是不是改成 sql.Add('where ITEM=ss');???
      

  9.   

    临时缓冲一下记录值不就可以了?var
      tmp: string;
    begin
    ...
      tmp := fieldbyname('ITEM').AsString;
      with adoquery1 do
      begin
        close;
        sql.Clear;
        sql.Add('update DG set visible=false');//visible是表里的字段名
        sql.Add('where ITEM=:ss'); 
        parameters.ParamByName('ss').Value:=tmp;
        execsql;
       end;
    ...
    end; 
      

  10.   

     tmp := fieldbyname('ITEM').AsString; 修改成 adoquery1.fieldbyname('ITEM').AsString;
      

  11.   

    用12楼的方法,或者新建一个Query,用这个新建立的QUERY更新
      

  12.   

    问题太大了,delphi中的ado,dbexpress都可以实现,直接用sql语句当然可以。