在TQuery控件中,我遍历后面的数据集,怎么数目怎比实际的多1呢?
while not Query1.eof do
begin
  ....
  Query1.next;
  ....
  
end;

解决方案 »

  1.   

    Query1.first;
    while not Query1.eof do
    begin
      ....
      Query1.next;
      ....
      
    end;
      

  2.   

    我觉得数目是对的。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      i:=0;
      while not Query1.Eof do
      begin
        i:=i+1;
        ShowMessage(IntToStr(i));
        Query1.Next;
      end
    end;贴上代码。
      

  3.   

    为什么不用tquery.recordcount属性来确定记录数目
      

  4.   

    确实是这样的,因为实际上eof是在next失败之后才会变成true的,而你到达最后一笔记录的时候,next还不会失败,再调用一次才会失败,所以情况就变成了你说的那样,
      

  5.   

    Query1.first;
    while not Query1.eof do
    begin
      ....
      Query1.next;
      ....
      
    end;
    first指向第一笔的前一笔,一定要有Query1.first;