我的程序片段如下:
  ..........
  frmData.ADOQ.First;
  while not frmData.ADOQ.Eof do
  begin
  ......
 //以上为处理一条记录 //此处删除上面处理的记录<请问此处的代码应如何写呢?>
  ......
 end;

解决方案 »

  1.   

    直接 AdoXXX.delete 就可啊!
    也不用什麼 next!
      

  2.   

    to:aiirii
    问题在于我用adoq.delete(adoquery.delete)的时候会使处理的记录少于实际要处理的记录,请问这是什么原因啊?
      

  3.   

    直接就adoq.delete;
    不要adoq.delete(adoquery.delete)
      

  4.   

    .....我是说的adoq指adoquery啊....
      

  5.   

    程序改为如下:
      ..........
      frmData.ADOQ.First;
      while not frmData.ADOQ.Eof do
      begin
      ......
     //以上为处理一条记录  frmData.ADOQ.Delete;
      frmData.ADOQ.Next;
      ......
     end;这样有一个问题,那就是:处理的记录少于实际要处理的记录请问这是什么原因呢?
      

  6.   

    另:各位高手帮忙看下我的另外一个问题啊
    http://expert.csdn.net/Expert/topic/2322/2322518.xml?temp=.6835901
      

  7.   

    就用adoquery.delete
    处理的记录少于实际要处理的记录   是什么意思
    用不然
    adoquery.last;
    从最后的记录开始处理。
      

  8.   

    frmData.ADOQ.Delete;
      frmData.ADOQ.Next;
      ......
     end;这样有一个问题,那就是:处理的记录少于实际要处理的记录
    ----------------------------------------------------------
    肯定啦,不要那句:frmData.ADOQ.Next;就行了。
      

  9.   

    不要frmData.ADOQ.Next的话,循环怎么结束呢?
      

  10.   

    to: dyf2001(西风) 
    因为数据库的记录是在变动的,若处理完成后再一起删除好象很麻烦啊
      

  11.   

    啊,看来我这两天脑袋是进水了,用了delete之后就可以不用next了 呵呵 :)谢谢各位啊,另请帮忙看下http://expert.csdn.net/Expert/topic/2322/2322518.xml?temp=.6835901这个问题啊
      

  12.   

    frmData.ADOQ.Next 是用來移動指針的,當滿足到紀錄尾時,.eof就為真,跳出循環。
    frmData.ADOQ.Delete,刪除紀錄後,數據集裡面就不存在該紀錄了,指針會自動指向下一紀錄。當你刪到紀錄結尾的時候,.eof一樣會為真,就跳出循環。這些知識應該來說很基本了。建議樓主多看看書。