在DELPHI中判断是否到了表的末尾

解决方案 »

  1.   

    详细点
      比如表 ryxx(ryid,rykh)
      

  2.   

    比如用AdoQuery连接数据库AdoQuery1.active := false;
    AdoQuery1.sql.clear;
    AdoQuery1.sql.add('select * from ryxx');
    AdoQuery1.active:=true;  if AdoQuery1.eof then
      ShowMessage('已经到了表的末尾');
      

  3.   

    if adoquery1.eof then
      //到最后一条记录
      

  4.   

    准备给分吧!sql.close;
    sql.clear;
    sql.add('select * from tablename');
    first;////指向表的第一条记录
    while not eof ////如果不是表的最后一行(你要的问题的答案!)
    begin
    .....////程序体
    next;//指向下一条记录
    end;
      

  5.   

    while not AdoQuery1.eof do  //是否是最后一条,不是最后一条的话执行下面的程序
    begin
      .....;//程序
       AdoQuery1.movenext;
    end;
      

  6.   


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    adostoredproc2.ExecProc;
    AdoQuery1.active := false;
    AdoQuery1.sql.clear;
    AdoQuery1.sql.add('select * from ryxx');
    AdoQuery1.active:=true;
    //if AdoQuery1.eof then
     // ShowMessage('已经到了表的末尾');
       if trim(edit1.text)='' then
         begin
         while not(adoquery1.eof) do
          begin
            with adoStoredproc1 do
              begin
               Parameters.ParamByName('@rfkh').Value:='0000000001';
         //adoquery1.FieldByName('rfkh').Value;
               ExecProc;
              end;
          end;
         end
     else
     begin
     with adoStoredproc1 do
      begin
      Parameters.ParamByName('@rfkh').Value:=trim(edit1.text);
      ExecProc;
      end;
     end;
    adodataset1.Close;
    adodataset1.Open; 
    adostoredproc2.ExecProc;end;
    这段代码有什么问题,帮忙看下(怎么为空的时候程序就没反应了)
      

  7.   

    不好意思,漏了个DO~~
    while not eof do
      

  8.   

    表所在的数据集,在后面加上EOF,就是了
    if TDateset.Eof then
    begin
      //这里写到表末的代码
    end;