SET SOFTSEEK
 Comuta o SEEK relativo
------------------------------------------------------------------------------

 Sintaxe

     SET SOFTSEEK on | OFF | <xlComuta>

 Argumentos

     ON faz com que o ponteiro de registro seja movido para o registro
     mais próximo com o valor de chave mais alta que a que nao foi
     encontrada com SEEK.

     OFF faz com que o ponteiro de registro seja movido para EOF() caso
     o comando SEEK nao tenha sucesso.

     <xlComuta> é uma expressao lógica entre parênteses.  Um valor
     verdadeiro (.T.) é o mesmo que ON, e um valor falso (.F.) é o mesmo que
     OFF.

 Descriçao

     SET SOFTSEEK ativa o seek relativo, o qual é um método de pesquisa em
     um índice que retorna um registro mesmo se a chave especificada nao é
     encontrada.

     Quando SOFTSEEK está ON, e a chave procurada nao é encontrada, o
     ponteiro de registro é colocado no próximo registro do índice com um
     valor de chave mais alto do que o argumento de SEEK.  Registros nao
     visíveis por causa de SET FILTER e/ou SET DELETED sao saltados quando
     da busca pelo valor mais alto.  Se nao existir um registro com valor
     mais alto, o ponteiro de registro é posicionado em LASTREC() + 1, EOF()
     retorna verdadeiro (.T.) e FOUND() retorna falso (.F.).  Found retorna
     verdadeiro (.T.) somente se o registro for realmente encontrado.  Ele
     nunca retorna verdadeiro (.T.) para uma busca relativa.

     Quando SOFTSEEK está OFF e um SEEK nao tem sucesso, o ponteiro de
     registro é posicionado em LASTREC() + 1, EOF() retorna verdadeiro (.T.)
     e FOUND() retorna falso (.F.).

 Notas

       SET RELATION: SET RELATION ignora atualizaçao de ponteiro
        via SOFTSEEK em todas as áreas relacionadas como se SOFTSEEK
        estivesse OFF.

 Exemplos

     O exemplo seguinte ilustra os resultados possíveis de um SEEK com
     SOFTSEEK ON:

     SET SOFTSEEK ON
     USE Salesman INDEX Salesman NEW
     ACCEPT "Vendedor: " TO cSearch
     SEEK cSearch
     IF FIELD->Salesman = cSearch
        ? "Encontrado: ", FOUND(), EOF(), FIELD->Salesman
     ELSEIF !EOF()
        ? "Aproximado: ", FOUND(), EOF(), FIELD->Salesman
     ELSE
        ? "Nao encontrado: ", FOUND(), EOF(), FIELD->Salesman
     ENDIF

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: SEEK SET INDEX SET ORDER SET RELATION FOUND()