Busca segura com DbSeek, Found e SoftSeek
Distingue registro encontrado de posicionamento aproximado.
Visão geral
DbSeek exige índice ativo compatível com a chave. Para índice com um único campo numérico, a chave é numérica; nos demais casos siga a expressão e os tamanhos do índice. SoftSeek verdadeiro pode posicionar em uma chave maior sem encontrar a solicitada: retorno falso não autoriza usar o registro posicionado como correspondência. Found recupera o resultado da busca; consulte-o imediatamente no mesmo contexto. A ficha DBSeek traz orientações conflitantes sobre lLast; o exemplo o omite e usa busca sem SoftSeek. O fragmento não escolhe índice nem monta chave: essas são pré-condições explícitas do chamador. (TOTVS, s.d., refs. 1–2)
Retorno
Não há retorno único: trata-se de um roteiro composto.
Exemplo comentado
// Fragmento: alias corrente aberto, indice ativo e cChave compativel.
lEncontrou := DbSeek(cChave, .F.)
If lEncontrou .And. Found()
// Ler somente aqui os campos da correspondencia.
ConOut("Chave encontrada")
Else
ConOut("Chave nao encontrada")
EndIfResultado depende da chave e dos dados. O exemplo reposiciona o alias, não grava e não preserva sua posição anterior. Declarar chave e lógico no chamador. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Validar alias, índice, filtro e filial antes da busca. Preservar/restaurar contexto quando necessário e não intercalar outra busca antes de Found.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.