DBSeek

Busca um registro numa tabela usando o indice atual. Sempre defina DBSetOrder() antes — a ordem 1 nem sempre e a que voce quer.

Assinatura: DBSeek(cChave, lSoft) -> lAchou

Retorna: Logical

DBSeek e a forma mais rapida de localizar registros em Protheus porque usa o indice (ao contrario de DBSelectArea + filtro). Precisa de duas coisas: alias selecionada e ordem definida.

Sintaxe

DBSelectArea("SA1")
DBSetOrder(1)              // qual indice usar (1 = primeira chave)
lAchou := DBSeek(cChave)   // .T. se achou, .F. caso contrario

Exemplo

DBSelectArea("SA1")
SA1->(DBSetOrder(1))                                    // indice por filial+codigo
If SA1->(DBSeek(xFilial("SA1") + cCodigoCliente))
    cNome := SA1->A1_NOME
Else
    cNome := "Cliente nao encontrado"
EndIf

// Padrao com Posicione (atalho que ja faz DBSeek):
cNome := Posicione("SA1", 1, xFilial("SA1") + cCod, "A1_NOME")

Pegadinhas

Parâmetros

NomeTipoObrigatórioDescrição
cChaveCharactersimChave concatenada conforme o indice
lSoftLogicalnãoDefault .F. (busca exata)

Exemplos

Buscar cliente

SA1->(DBSetOrder(1))
If SA1->(DBSeek(xFilial("SA1") + cCod))
    cNome := SA1->A1_NOME
EndIf

Veja também