可再调用一次LOCATE查找下一条

解决方案 »

  1.   

    没办法
    如果有索引的话就用SEEK吧
    或者自己从当前找到最后
      

  2.   

    LOCATE这个东西无论你怎样移动记录指针它都是从头开始查的。
      

  3.   

     
    可再调用一次LOCATE查找下一条  
      

  4.   

    我已经试过再调用一次LOCATE始终还是找出第一条来。
      

  5.   

    FINDNEXT不行,我又不是用FILTER。我用LOCATE。不要说将LOCTE内容写成FILTER,因为我不想影响FILTER的内容。
      

  6.   

    不用locate行不?为什么非得用它呢
      

  7.   

    sxgs的方法还有点用,我先试试。
      

  8.   

    sxgs的方法还是不行,你这个方法基本上等于我要把LOCATE重新写一个。虽然VCL SOURCE是公开的,改写也不算难事,但我又不想搞得太复杂,真的没有什么容易的方法吗?
      

  9.   

    试度这样行不行!
    1.先locate,找到第一个记录后
    2.用next向下跳一个记录
    3.再locate
    因为第一次locate找到第一个记录后,记录指针还在所找到的那第记录上,你接着又locate时又会自动从那条记录开始找当然始终只能找到第一个记录了!
      

  10.   

    你可以试一试
    已经找过的纪录用书签标志,接下来
    sql:
      select do.. 
      from do.. 
      where [字段]=:value
    while not (table name eof ) do
      begin
        if  do..//判断是否是标签 then //是标签
         countion
        else
          do..//定位
        table name.next;
      end;//标签可以设置多个
    试一试=成功
    ^V^      
    locate 也有下一条的查找
    正在玩
        
      

  11.   

    找到了
     呵呵,
     if locate(keyFields,keyvalues,[]) then
      begin
        do ...//
        if LocateNext(KeyFields; KeyValues; []) then 
          begin
            do ..//
          end else
          begin 
            showmessage('想说什么?');
             exit;
          end
      end else
      begin
        showmessage('想说什么?');
        exit;
      end;
    //第一次用,可以 试一试;
     
      

  12.   

    大佬,DELPHI 5里面只是IBCLIENTDATASET有LOCATENEXT啊,你用的是什么版本啊?