Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
DBSeek
DBSeek

Função: DBSeek

Localiza um registro com determinado valor da expressão de chave de índice.

DBSeek ( < xExp>, [ lSoftSeek], [ lUltimo] ) --> lRet

 

NomeTipoDescriçãoObrigatórioReferência
xExpQualquerIndica o valor da chave que será encontrada do tipo caracter. Observação: Todos os tipos de expressão do índice com exceção do índice com apenas um campo do tipo numérico.X 
lSoftSeekLógicoIndica se, verdadeiro (.T.), posiciona no primeiro registro com expressão de chave maior que o valor procurado; caso contrário, falso (.F.) (Valor padrão).  
lUltimoLógicoParâmetro não suportado pela linguagem AdvPL. Mantido por compatibilidade.  

 

lRet
    (logico)
  • Retorna verdadeiro (.T.), se encontrar um registro com o valor especificado; caso contrário, falso (.F.).
  • Antes de chamar a função 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 um campo numérico, o primeiro parâmetro <xExp> deve ser do tipo numérico, mas nos demais casos deve-se utilizar um valor do tipo caracter para este parâmetro (mesmo que sejam apenas dois campos numéricos ou do tipo data).
  • Quando o segundo parâmetro <lSoftSeek> for especificado como verdadeiro (.T.), 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 <xExp>, mas mesmo posicionando no próximo valor essa função retornará falso (.F.) (pois não encontrou).

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

    Se o terceiro parâmetro <lUltimo> for especificado com valor verdadeiro (.T.), a função posiciona a tabela no último registro com o valor, ou falso (.F.), será posicionada na primeira ocorrência.
//Este exemplo, apresenta como utilizar a função DBSeek() para busca de valores numéricos.
USE Clientes NEWORDListADD ("/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, apresenta como utilizar a função DBSeek() para percorrer todos os registros
//de Clientes com o nome João e vencimentos a partir de Janeiro de 2001.
USE Clientes NEWORDListADD ("/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 2001WHILE2001
WHILE !EOF() .AND. Nome == "joao"
DBSkip()
ENDDO
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server