Comando LOCATE

Pesquisa pelo primeiro registro que corresponde ao valor ou condição especificado ou move para o número de registro especificado.

Sintaxe

LOCATE {IF teste <WHILE teste> <FIRST intervalo|NEXT intervalo>|RECORD num}

Parâmetros

Nome Descrição

IF teste

O valor ou condição a ser pesquisado. Os valores literais de caracteres devem estar entre aspas, e os valores de datahora entre acentos graves.

WHILE teste

opcional

Uma expressão condicional que deve ser verdadeira para processar cada registro. O comando é executado até que a condição seja avaliada como falsa ou o fim da tabela seja alcançado.

Nota

Se você usar WHILE juntamente com FIRST ou NEXT, o processamento de registros será interrompido assim que um limite for alcançado.

FIRST intervalo | NEXT intervalo

opcional

O número de registros a ser processado:

  • FIRST iniciar o processamento a partir do primeiro registro até alcançar o número de registros especificado
  • NEXT iniciar o processamento a partir do registro selecionado no momento até alcançar o número de registros especificado

Use intervalo para especificar o número de registros a serem processados.

Se você omitir FIRST e NEXT, todos os registros serão processados por padrão.

RECORD num

O número de registro a localizar.

Exemplos

Localizar o primeiro registro que corresponde a um valor especificado

Os exemplos a seguir mostram o uso de LOCATE para encontrar a primeira ocorrência de um valor específico em uma tabela:

LOCATE IF Nome_Fornecedor = "Equipamentos United"
LOCATE IF Nome_Fornecedor = "Uni"
LOCATE IF Valor_Fatura > 1000
LOCATE IF Data_Fatura = `20141231`

Localizar o primeiro registro que corresponde a uma condição ou expressão especificada

Os exemplos a seguir ilustram o uso do LOCATE para encontrar a primeira ocorrência de uma condição ou expressão específica em uma tabela:

LOCATE IF Nome_Fornecedor = "Equipamentos United" AND Valor_Fatura > 1000 AND Data_Fatura > `20140930`
LOCATE IF Cidade_Fornecedor = v_cidade

Localizar um registro pelo número do registro

O exemplo a seguir ilustra o uso do LOCATE para avançar para um registro específico em uma tabela:

LOCATE RECORD 50

Observações

Para obter mais informações sobre o funcionamento desse comando, consulte Selecionar o primeiro registro correspondente.

Como funciona?

Use o comando LOCATE para avançar diretamente para o primeiro registro em uma tabela que corresponde ao valor ou condição especificado.

Se o valor ou expressão pesquisado for encontrado, o primeiro registro correspondente da tabela é selecionado. Se o valor ou condição especificado não for encontrado, a tabela é posicionada no seu primeiro registro.

Você também pode usar LOCATE para avançar diretamente para um número de registro especificado

LOCATE comparado a FIND e SEEK

Diferentemente dos comandos FIND e SEEK, o comando LOCATE não é restrito a pesquisas em tabelas indexadas ou a um único campo de caracteres. Com o LOCATE, é possível pesquisar por qualquer tipo de literal ou por uma expressão com qualquer tipo de dados ou uma mistura de tipos de dados.

Quando usado para pesquisar uma tabela não indexada, o comando LOCATE pode ser significativamente mais lento que FIND ou SEEK porque precisa processar sequencialmente cada registro na tabela. O tempo de processamento necessário depende do tamanho da tabela, da localização do registro correspondente e de o escopo da pesquisa ser reduzido usando WHILE, FIRST ou NEXT.

Correspondência parcial suportada

A correspondência parcial é suportada para pesquisas de caracteres. O valor pesquisado pode estar contido em um valor mais longo no campo ou campos pesquisados. Porém, os valores pesquisados devem aparecer no início dos campos para constituírem correspondência.

Ativação ou desativação de correspondência parcial

Você pode ativar ou desativar a correspondência parcial usando o comando SET ou uma configuração na caixa de diálogo Opções:

Ativar correspondência parcial Desativar correspondência parcial

Especifique: SET EXACT OFF

ou

Desmarque: Comparações exatas de caractere na caixa de diálogo Opções (Ferramentas > Opções > Tabela)

Resultado: o valor pesquisado pode estar contido em um valor mais longo no campo ou campos pesquisados. O valor pesquisado deve aparecer no início de um campo para constituir uma correspondência.

Especifique: SET EXACT ON

ou

Marque: Comparações exatas de caractere na caixa de diálogo Opções (Ferramentas > Opções > Tabela)

Resultado: o valor pesquisado deve corresponder exatamente a um valor em um campo para constituir uma correspondência.

Para obter mais informações sobre SET EXACT, consulte Comando SET.

Para obter mais informações sobre a opção Comparações exatas de caractere, consulte Opções de tabela.