
Ler um registro pelo valor da chave primária.
FIND <exp> [NEXT] [SHARED | EXCLUSIVE] [ALL]
|
<exp> |
expressão a ser pesquisada, deve ser do mesmo tipo da chave. |
|
NEXT |
lê o registro com valor igual ou maior que a expressão. Só aplicável em arquivo externo indexado. |
|
SHARED |
determina o bloqueio para leitura compartilhada do registro |
|
EXCLUSIVE |
determina o bloqueio para uso exclusivo do registro. |
|
ALL |
determina que todos os itens do registro sejam lidos, não importando se serão utilizados ou não. |
Acessa diretamente um registro cujo valor da chave primária corresponda ao da expressão. Caso o registro não seja encontrado, a função EOF( ) retorna verdade (.T.) e a função FOUND( ) retorna falso (.F.).
Com a opção NEXT só acusará final de arquivo (EOF( ) = .T.) se não for encontrado nenhum registro que seja igual ou maior que a expressão. SHARED determina que o registro seja bloqueado podendo compartilhar somente a leitura do registro. Utilizada em bloqueio de banco, funciona como EXCLUSIVE.
EXCLUSIVE determina que o registro seja acessado exclusivamente pelo usuário, sem permitir leitura ou gravação por outro usuário.
ALL faz com que todos os itens do registro sejam carregados para memória.
O exemplo a seguir mostra como acessar um determinado registro em um arquivo entidade.
DATABASE bdemp1 33 a 2
USE tab_func
FIND 123 && id0_func = 123
IF FOUND( )
? nom_func
ELSE
? "Nao encontrado"
ENDIF
O exemplo a seguir mostra como acessar um determinado registro com valor igual ou maior que a expressão.
USE usuarios.d
FIND 123 NEXT
IF FOUND( )
? nomeusr
ELSE
? "Fim de arquivo"
ENDIF
$READALL, DATABASE, LOCK, REPLACE, RESTORE, SAVE, SEEK, SELECT, DBERR( ), EOF( ), FFIND( ), FGO( ), FRECNO( ), FOUND( ) e RECCOUNT( ).
