我用adotable1.append;添加数据,不用adotable1.post;好象数据就保存了。Append是否自带了post啊?还是怎么回事?

解决方案 »

  1.   

    adotable1.append;  之后没有POST跟着再adotable1.append;是会自动POST之后在增加的!
      

  2.   

    Append;调用的是procedure TDataSet.Append;
    var
      Buffer: PChar;
    begin
      BeginInsertAppend;
      ....Append之前会调用BeginInsertAppend;procedure TDataSet.BeginInsertAppend;
    begin
      CheckBrowseMode;而BeginInsertAppend又调用了CheckBrowseMode;procedure TDataSet.CheckBrowseMode;
    begin
      CheckActive;
      DataEvent(deCheckBrowseMode, 0);
      case State of
        dsEdit, dsInsert:
          begin
            UpdateRecord;
            if Modified then Post else Cancel;
          end;
        dsSetKey:
          Post;
      end;
    end;CheckBrowseMode看的出来,如果正处在插入或修改状态会调用if Modified then Post else Cancel;如果你已经做了修改了就会提交,否则就取消;做完这些之后才会去调用Append;要说明一点,没办法让一条以上的记录处在dsEdit或dsInsert状态!