Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

SEEK

Propósito

Executar uma leitura em cadeia de registros por chave secundária.

Sintaxe

SEEK [<chave> = | $=] <exp> [LAST] [SHARED | EXCLUSIVE] [ALL]

 ...

 [REVERSE]

 ...

[SKIP]

Argumentos

<chave>     nome da chave secundária no arquivo.

<exp>         representa a expressão a ser pesquisada. Quando <chave> estiver presente, <exp> deve ser do mesmo tipo.

=         determina que a cadeia será formada por todos os registros que tenham valor da chave igual ao da expressão.

$=         determina que a cadeia será formada por todos os registros que tenham chave tipo cadeia que se inicie com o valor da expressão.

LAST         determina que a leitura se dará do último registro para o primeiro registro da cadeia encontrada.

SHARED     determina o bloqueio para leitura compartilhada do registro

EXCLUSIVE     determina o bloqueio para uso exclusivo do registro.

ALL         faz com que todos os itens do registro sejam carregados para memória.

REVERSE     determina a inversão do sentido de leitura da cadeia.

SKIP         lê o próximo registro da cadeia respeitando o sentido da leitura.

Utilização

Uma leitura em cadeia significa que a OPUS criará um arquivo com os endereços de todos os registros que atendam a expressão.

Um exemplo é a pesquisa de todos os funcionários nascidos em 1964.

É uma pesquisa extremamente rápida e útil, pois é efetuada sobre itens chaves.

Uma pesquisa de prefixo significa que somente os itens chave que tiverem o prefixo igual a expressão serão armazenados na cadeia.

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.

A função CHAIN() retorna o número de registros encontrados com valor da chave igual a <exp> (operador "=").

A função EOF() retorna verdadeiro (.T.) quando a leitura chega ao final da cadeia.

Não são permitidos os operadores ">=" ou "<=" para o comando SEEK.

Para este tipo de pesquisa utilizar o comando LOCATE com a cláusula START.

Exemplo

O exemplo a seguir exibe todos os funcionários inativos.

DATABASE bdemp1 33 a 2

USE tab_depe

SEEK id2_func = 11

? CHAIN()     && Exibe a quantidade de funcionários inativos.

DO WHILE FOUND()

? nom_func     && Exibe o nome do funcionário encontrado.

SKIP     && Le o próximo registro da cadeia.

ENDDO

Consulte

$READALL, FIND, LOCK, RESTORE, REVERSE, SAVE, SKIP, CHAIN( ), DBERR( ), EOF( ), FCHAIN( ), FLSEEK( ), FLSKIP( ) e RECNO( ).

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!