环境
D2007  Ado+MS SQL2000 +Cxgrid在操作主从表时,从表的记录增加提供两种方法以。
一个是单一记录增加使用的方法:qDetail.append另一个是多记录增加 从其他表中增加的。使用的方法:  //增加明细
  DModule.qrytemp.Close;
  DModule.qrytemp.SQL.Text:='Exec pGetFlOrderList @BillNo='
    +''''+qMaster.FieldByName('fBillNo').AsString+'''';
  DModule.qrytemp.Open;
  //
  DModule.qrytemp.First;
  while not DModule.qrytemp.Eof do
  begin
    qDetail.Append;
    QDetail.FieldByName('fInQty').AsFloat:=DModule.qrytemp.FieldByName('fInQty').AsFloat;
    QDetail.FieldByName('fPrice').AsFloat:=DModule.qrytemp.FieldByName('fPcPrice').AsFloat;
    DModule.qrytemp.Next;
  end;奇怪的是:第一个增加记录方法,没有什么问题发现。
第二个方法,在记录增加成功后,我在修改qDetail其中的比如fprice字段时
1、如果增加有三条记录,我修改前两条记录的fprice点保存时,可以保存修改结果。但如果在编辑最后一条记录时,却无法保存。(比如原来是5,我改成了10,结果保存后还是5)
2、上述情况,如果修改最后一条记录的fprice的值后,我把记录从最后一条记录移动到其他记录。就可以保存了。
3、保存的方法
qDetail.UpdateBatch();