Comando LOCATE
Informações do conceito
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:
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.