使用locate只能查找满足条件的第一个记录,那怎么实现查找到下一个满足条件的记录呢?

解决方案 »

  1.   

    没有直接的方法,只有将满足条件的记录用QUERY查找出来,
    再做处理
      

  2.   

    1 如果是TIBCustomDataSet你可以用LocateNext方法
    2 你可以用filter或者将locate到的记录更改了,然后locate(这样比较绕,不过实现很简单)
      

  3.   

    1.设置table1.fileter:=locate的条件
    2.filtered:=true;
    3.first;//符合条件的第一条
    4.next;// 第二条
    5记录book
    6.你的操作
    7.Fileted:=false//恢复成原样
    8.回到找到的第二条gotobook
    9.释放bookvar
    book:Tbook;
    begin
        with table1 do
        begin
        filtered:=true;
        next;
       try
        book:=Table1.GetBook;       
        Filtered:=false;
        GotoBook(BookMark);
       finally
        FreeBook(Book);
       end; //try
       做你的事
    end;//with
      

  4.   

    var curr;//记录当前记录位置
    beign
     curr:=Table1.recNo;
     while (not 查找条件) Table1.next;
     //此时数据库定位到下一条符合条件的记录
     //....
    end;
      

  5.   

    to yesxwl : 不只是有两条记录符合条件,就像delphi中的F3功能一样,先定位到第一个记录,再按F3,定位到下一个记录。
      

  6.   


    设置一变量i记录第几次定位
    第一次i=0,第二次i=1……多条记录不用next 
    First
    moveby(i)
    其他代码见前