procedure TDefineNumForm.Button5Click(Sender: TObject);
var
  i,idx:integer;
begin
  idx:=0;
  with dm.MyNumQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from MyNum');
    open;
    append;
    fieldbyname('fangan').AsInteger:=2;
    for i:=0 to checklistbox1.Count-1 do
    begin
      fieldbyname('red'+inttostr(idx+1)).AsBoolean:=checklistbox1.Checked[i];
      inc(idx);
    end;
    next;
    post;
  end;
end;以上代码执行后出现'Dataset not in edit or insert mode'
如果把循环去掉就行,请问各位哪里出错,谢谢!