with adoquery1 do
begin
  close;
    sql.Clear;
    sql.Add('select timeStart 开始时间,timeEnd 结束时间,rtrim(Addr) 停电地址,rtrim(Reason) 停电原因,(case when BroadIs=1 then ''已发布'' else ''未发布'' end) 发布否,rtrim(BroadDept) 发布部门,BroadMan 发布人,BroadTime 发布时间 from PowerCut');
    open;
end;//with
//-----------------------数据更新------------------------------
with adoquery1 do
  begin
    edit;
    fieldbyname('停电地址').asstring:='aaaa';
    fieldbyname('停电原因').asstring:='aaaa';
    fieldbyname('发布否').asstring:='aaaa';
    fieldbyname('发布部门').asstring:='aaaa';
    post;
  end;
错误提示:字段'停电地址'、'停电原因'、'发布否'、'发布部门'不能被编辑。??
不知为什么??
(设置adoquery1.paramcheck:=false也没有用)

解决方案 »

  1.   

    with adoquery1 do
      begin
       first;
        edit;
        fieldbyname('停电地址').asstring:='aaaa';
        fieldbyname('停电原因').asstring:='aaaa';
        fieldbyname('发布否').asstring:='aaaa';
        fieldbyname('发布部门').asstring:='aaaa';
        post;
      end;
      

  2.   

    建议楼主改用update来做.
    strSql:='update ......'
    再用adoconnect来执行一下.
      

  3.   

    with adoquery1 do
      begin
        edit;
        fieldbyname('Addr').asstring:='aaaa';
        fieldbyname('Reason').asstring:='aaaa';
        fieldbyname('BroadIs').asstring:='aaaa';
        fieldbyname('BroadDept').asstring:='aaaa';
        post;
      end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    with adoquery1 do
    begin
      close;
      sql.Clear;
      sql.add('select * from gstgsgl0');
      open;
    end;
    with adoquery1  do
    begin
      edit;
      FieldByName('DWMC00').AsString:='adfa';
      post;
    end;
    end;
    我这段代码完全可以,你的错误不是代码原因,看看别的地方有没有出错