Encontra um registro com determinado valor da chave do índice.

Sintaxe

DBSeek ( cExp | nExp, [ lSoftSeek ], [ lUltimo ]) –> Lógico

Descrição

Esta função é utilizada para encontrar um registro com determinado valor da expressão de chave de índice.

Antes da chamada do DBSEEK deve-se certificar de que existe uma ordem ativa no momento com os campos que se deseja pesquisar o valor.

Se a expressão possuir apenas uma campo numérico, o primeiro parâmetro deve ser do tipo numérico, mas nos demais casos deve-se utilizar um valor do tipo caracter para este parâmetro (mesmo se forem apenas dois campos numéricos ou do tipo data).

Quando o segundo parâmetro for especificado como .T. (softseek), mesmo que a expressão pesquisada não encontrar nenhum registro com este valor, a tabela será posicionada no próximo valor maior que o especificado no primeiro parâmetro, mas mesmo posicionando no próximo valor esta função retornará .F. (pois não encontrou).

Quando não for especificado este valor ou estiver .F. e falhar o valor de pesquisa, a tabela será posicionada em LASTREC + 1 e será setada a flag de EOF.

Se o terceiro parâmetro for especificado com valor .T. a função posiciona a tabela no último registro com o valor procurado, caso não seja especificado ou for .F., será posicionada na primeira ocorrência.

Exemplo

Este exemplo demonstra como se pode utilizar o DBSEEK para busca de valores numéricos.

USE Clientes NEW

ORDLISTADD (“/teste/ind1.cdx”) // Expressão é Num (campo numérico)

DBSEEK(100) // Retorna: .F.

EOF() // Retorna: .T.

DBSEEK(100,.T.) // Retorna: .F.

EOF() // Retorna: .F. (pois o softseek posicionou no próximo registro)

 

Este exemplo demonstra como se pode utilizar o DBSEEK para percorrer todos os registros de Clientes com o nome joao e vencimentos a partir de janeiro de 2001.

USE Clientes NEW

ORDLISTADD (“/teste/ind2.cdx”) // Expressão é Nome+Venc (campo caracter + data)

DBSEEK(“joao200101”,.T.) // Procura a primeira ocorrência de Nome “joao” e vencimento maior que Janeiro de 2001

WHILE !EOF() .AND. Nome == ”     joao”

DBSKIP()

ENDDO

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Necessita de ajuda?