Duvida find first omitindo numeros

Discussão em 'Progress 4GL' iniciado por ueluis, Junho 8, 2015.

  1. ueluis

    ueluis Membro Participativo

    Galera como resolver o seguinte problema:

    tenho registros em uma tabela chamada produto, indexada pelo campo id na seguinte estrutura.
    Código:
    id|ordem
    1|363107
    2|364281
    3|364291
    4|364293
    5|363987
    
    Estando posicionado na ordem 363107 (id:1) quando executo a instrução: > próxima ordem
    Código:
     
    find first produto no-lock  where produto.ordem > vordem no-error.
             if avail produto then
                    disp produto.ordem.
    
    a rotina traz o numero 364281 e não o 363987.

    como proceder para que a busca seja indexada pela ordem?

    abç a todos.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Já que você tem indice, use FIND NEXT retirando a cláusula WHERE.
    ueluis curtiu isso.
  3. ueluis

    ueluis Membro Participativo

  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    ou vc cria um indice para o campo ordem e trabalha com ele, cria ele como UNIQUE e pronto, vc pode usar varios indices em uma tabela sem problemas.
    O progress tem inteligencia pra verificar qual campo vc está usando e utilizar o melhor indice, mas mesmo assim, se achar necessario, vc pode usar a clausula use-index e forçar ele a usar o indice que te interessa.
  5. ueluis

    ueluis Membro Participativo

Compartilhe esta Página