while not adotable1.Bof do
------->>>>>>>>>>>>
while not adotable1.Eof do

解决方案 »

  1.   

    Bof是返回是否到首
    Eof才是返回是否到尾
    用Next当然永远不会回到首
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    while not adotable1.eof do
    begin
         adotable1.Edit;
         adotable1['数量']:=adotable1['数量']+10;
         if messagedlg('确认改变数据?',mtconfirmation,[mbyes,mbno],0)=mryes then
         adotable1.Next
         else
            begin
            adotable1.Cancel;
            adotable1.next;
            end;
    end;
      

  3.   

    Bof = Begin of field/file
    Eof = End of field/file
      

  4.   

    如何改进此程序,可以有cancel功能?
     messagedlg('确认改变数据?',mtconfirmation,[mbyes,mbno],0)=mryes 
    括号里的定义是什么意思?
      

  5.   

    Bof 是指是否到表数据集的顶部
    Eof 才是是否到达数据集的尾部你总是Next,它是永远也没有完的!!:)
      

  6.   

    0和mtconfirmation,mryes又是什么意思啊?
      

  7.   

    用BOF不能用NEXT,要用Prior,
    要EOF才用NEXT
      

  8.   

    应该这样:procedure TForm1.Button2Click(Sender: TObject);
    begin
         adotable1.first;
         while not adotable1.Eof do
         begin
             adotable1.Edit;
             adotable1['数量']:=adotable1['数量']+10;
             if messageBox(handle,pchar('确认改变数据?'),pchar('确认'),MB_YESNO or MB_ICONINFORMATION)=idyes then
                 adotable1.post
             else
                 adotable1.Cancel;         adotable1.next;
        end;end;
      

  9.   

    >0和mtconfirmation,mryes又是什么意思啊?
    0:帮助索引
    mtconfirmation:确认图标 (mtWarning:警告图标;mtError:错误图标...)
    mryes:模态返回值 (mrYes对应mbYes; mrNo对应mbNo; mrOK对应mbOK)
      

  10.   

    while not adotable1.Bof do
    改为:while not AdoTable1.Eof do
      

  11.   

    thank everybody:)
    谢谢你们的帮助,我会努力的啦!