delphi datasource append

场景:delphi DataSource.DataSet.Append时出现一条空记录,如何避免

delphi DataSource.DataSet.Append时出现一条空记录,如何处理?
TmpClientDataSet:=TOurwayClientDataSet.Create(self);
  if InitClientDataSet(TmpClientDataSet, gShareData, 'Storage_GetStorageSparePart',4757) = RET_SUCCESS then
  begin
  myGrid.DataSource.DataSet.Edit;

  //根据参数获取数据
  TmpClientDataSet.vParameter := VarArrayof([gShareData.sAccountID,oweStorageID.Code,'0','0']);//获取参数
  TmpClientDataSet.SuperProcess;
  if TmpClientDataSet.RecordCount>0 then
  begin
  with TmpClientDataSet do
  begin
  TmpClientDataSet.First;
  while not Eof do
  begin
  myGrid.DataSource.DataSet.Append;
  myGrid.DataSource.DataSet.FieldByName('AccountID').AsString:=TmpClientDataSet.FieldValues['AccountID'];
  myGrid.DataSource.DataSet.FieldByName('SparePartID').AsString:=TmpClientDataSet.FieldValues['SparePartID'];
  myGrid.DataSource.DataSet.FieldByName('spname').AsString:=TmpClientDataSet.FieldValues['spname'];
  myGrid.DataSource.DataSet.FieldByName('standard').AsString:=TmpClientDataSet.FieldValues['standard'];
  myGrid.DataSource.DataSet.FieldByName('model').AsString:=TmpClientDataSet.FieldValues['model'];
  myGrid.DataSource.DataSet.FieldByName('unit').AsString:=TmpClientDataSet.FieldValues['unit'];
  myGrid.DataSource.DataSet.FieldByName('sptname').AsString:=TmpClientDataSet.FieldValues['sptname'];
  myGrid.DataSource.DataSet.FieldByName('Price').AsFloat:=TmpClientDataSet.FieldByName('Price').AsFloat;
  myGrid.DataSource.DataSet.FieldByName('BoothID').AsString:=TmpClientDataSet.FieldValues['BoothID'];
  myGrid.DataSource.DataSet.FieldByName('bname').AsString:=TmpClientDataSet.FieldValues['bname'];
  myGrid.DataSource.DataSet.FieldByName('MGuestID').AsString:=TmpClientDataSet.FieldValues['MGuestID'];
  myGrid.DataSource.DataSet.FieldByName('gname').AsString:=TmpClientDataSet.FieldValues['gname'];
  myGrid.DataSource.DataSet.FieldByName('OldNumber').AsFloat:=TmpClientDataSet.FieldValues['OldNumber'];
  myGrid.DataSource.DataSet.FieldByName('NewNumber').AsFloat:=TmpClientDataSet.FieldValues['NewNumber'];
  myGrid.DataSource.DataSet.FieldByName('Remark').AsString:=TmpClientDataSet.FieldValues['Remark'];
  myGrid.DataSource.DataSet.FieldByName('State').AsInteger:=TmpClientDataSet.FieldValues['State'];
  myGrid.DataSource.DataSet.FieldByName('SparePartTypeID').AsString:=TmpClientDataSet.FieldValues['SparePartTypeID'];
  myGrid.DataSource.DataSet.Post;
  TmpClientDataSet.Next;
  end;
  end;

  end;

  end;

  finally
  TmpClientDataSet.Free;
  end;


添加完正常应该15条记录,但是myGrid第一条显示的却是空记录,后面的15条记录都正确??

------解决方案--------------------
去掉 myGrid.DataSource.DataSet.Edit; 这句看看.