A função dbseek pesquisa a área de trabalho ativa para encontrar um determinado registro, de acordo com a chave de pesquisa utilizada.
Sintaxe
DbSeek(<expressão caracter>, <expressão lógica 1>, [ <expressão lógica 2> ] )
Argumentos
<expressão caracter>
São os dados do registro que se deseja localizar, de acordo com a ordem de busca previamente especificada pela função dbSetOrder(). Ou seja, de acordo com o índice ativo no momento para a área de trabalho.

<expressão lógica 1>
Define se o cursor ficará posicionado no próximo registro válido, em relação à chave de pesquisa especificada, ou no final do arquivo, caso não se encontre a exata informação da chave de pesquisa. O padrão utilizado é falso (.F.), indicando que a busca será aproximada.
Nesse caso, a pesquisa será considerada um sucesso quando encontrar uma parte da informação.
<expressão lógica 2>
Define se o cursor será posicionado no primeiro ou no último registro de um intervalo com as mesmas informações especificadas na chave de pesquisa. O padrão utilizado é falso (.F.), indicando que o cursor será posicionado no primeiro registro encontrado.
Utilização
A função permite posicionar o cursor da área de trabalho ativa no registro que corresponda às informações especificadas na chave de pesquisa. A função retorna um valor lógico indicando se a chave de pesquisa foi encontrada ou não. Caso retorne verdadeiro (.T.), a pesquisa obteve sucesso. Caso contrário, retorna falso (.F.).
Dicas
A função MsSeek() tem o mesmo objetivo da função dbSeek(). A vantagem da função MsSeek() é que ela não necessita acessar novamente a base de dados para localizar uma informação já utilizada pela conexão (thread) ativa.
Exemplos
Segue abaixo o exemplo de uma pesquisa exata. Ou seja, a pesquisa será considerada um sucesso somente se toda a chave de pesquisa for encontrada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
dbSelectArea(“SA1”) // De acordo com o arquivo SIX, a chave de pesquisa é A1_FILIAL + A1_COD + A1_LOJA dbSetOrder(1) IF dbSeek(“01” + “000001” + “02”) // Filial: 01 / Código: 000001 / Loja: 02 MsgInfo(“Cliente localizado”, “Consulta por cliente”) ELSE MsgInfo(“Cliente não encontrado”, “Consulta por cliente”) ENDIF |
No exemplo abaixo, verificaremos uma pesquisa aproximada. Ou seja, a pesquisa será considerada um sucesso caso uma parte da chave de pesquisa seja encontrada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
dbSelectArea(“SA1”) // De acordo com o arquivo SIX, a chave de pesquisa é A1_FILIAL + A1_COD + A1_LOJA dbSetOrder(1) IF dbSeek(“01” + “000001” + “02”, .T.) // Filial: 01 / Código: 000001 / Loja: 02 MsgInfo(“Cliente localizado”, “Consulta por cliente”) ELSE MsgInfo(“Cliente não encontrado”, “Consulta por cliente”) ENDIF |
Fonte: TDN
Fernando Bueno
Atuando desde 2005 no mercado de tecnologia, desenvolvendo e implantando e sistemas gerenciais, sistemas e sites web e ecommerce.
Siga-me no Linked In