with AdoTable1 do
  begin
    Open;
    Edit;
    First;
    FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
    Next;
    Post;
  end;编译后出现这错误:DataSet  not in edit or insert Mode.
怎么解决?

解决方案 »

  1.   

    with AdoTable1 do
      begin
        Open;
        Edit;
        FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
        Post;
      end;
      

  2.   

    with AdoTable1 do
    begin
        Open;
        First;
        Edit;
        FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
        Post;
        Next;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      AdoConnection1.BeginTrans;
      try
        with AdoTable1 do
        begin
          Open;
          First;
          while not eof do
          begin
            Edit;
            FieldByName('C2').AsString:=FieldByName('C1').AsString+'a';
            Next;
          end;
        end;
        AdoConnection1.CommitTrans;
      except
        AdoConnection1.RollbackTrans;
      end;
    end;
    不过我不喜欢用adotable,基本都用adoquery,用语句来实现
      

  4.   

    原来是顺序搞错了,hongqi162(失踪的月亮)的代码是正确的。
    顺便再问一下你,执行了,但是只计算了一条数据,没有往下计算,代码中也加了Next了,是什么问题?
      

  5.   

    你的代码里面并没有体现循环
    with AdoTable1 do
    begin
        Open;
        First;
        while not eof do
        begin
          Edit;
          FieldByName('字段2').AsString:=FieldByName('字段1').AsString*8;
          Post;
          Next;
        end;
    end;