问题是这样的:
如果记录一条一条往下移动,那么第一次到了最后一条记录,好像EOF还为False,当再往下移动时,才会判断出EOF为Ture,我的意思是如何当第一次到最后一条记录时,就判断出到了末尾?不知道我说得明白不明白?
谢谢

解决方案 »

  1.   

    判断adoquery1.recordcount=adoquery1.RecNo
      

  2.   

    if not (dataset.bof and dataset.eof) then begin
      while not dataset.eof do begin
        //dosomething
        dataset.Next;
      end;
    end;
      

  3.   

    if not (dataset.bof and dataset.eof) then begin
      while not dataset.eof do begin
        //dosomething
        dataset.Next;
      end;
    end;
    这个做法的道理是什么?
      

  4.   

    对于判断adoquery1.recordcount=adoquery1.RecNo
    我开始也想过,不过我不知道recordcount是否是在数据集打开始取来的,如果是那么新增了记录后recordcount是否会变?RecNo呢?
      

  5.   

    如果取回的数据集未有记录则当前的eof 和bof 标志处于同一位置
    如果不为空然后开始工作,完成一次工作后指针移下一条,如果上条的记录是末尾,那么移下一条就到了EOF标志上。结束工作。
      

  6.   

    对于判断adoquery1.recordcount=adoquery1.RecNo
    我开始也想过,不过我不知道recordcount是否是在数据集打开始取来的,如果是那么新增了记录后recordcount是否会变?RecNo呢?
    =========
    应该都是打开时取得,
      

  7.   

    if adoquery1.eof then adoquery1.next;
    这样判断不会有问题的
      

  8.   

    if adoquery1.eof then adoquery1.next;
    agree !
      

  9.   

    这个我敢肯定adoquery.recordcount是在数据集打开之前取得,我才用过的!!!用这个方法不会错!!!