
Verificar a existência de um registro em um arquivo entidade do banco.
CHEX (<chave>,<exp>)
|
<chave> |
representa o nome da chave primária de um arquivo entidade do banco. |
|
<exp> |
representa o valor a pesquisar e deve ser do mesmo tipo de <chave>. |
Retorna verdadeiro (.T.), se o valor de <exp> for encontrado.
O arquivo pesquisado não precisa estar em uso ou selecionado. Isto só é necessário se existir mais de um item com o mesmo nome da chave pesquisada.
Quando existirem nomes de chaves primárias iguais, a pesquisa é feita pelo primeiro encontrado. Se o primeiro nome encontrado não for de chave primária ocorrerá um erro de compilação, para evitar isto selecione o arquivo com a chave desejada.
Útil para validar consistência de dados em tempo de digitação.
O exemplo a seguir mostra-nos como verificar a ocorrência de um registro em um arquivo entidade em banco de dados durante a digitação de seus dados.
DATABASE bdemp1 33 a 2
@ 01,01 "Matrícula do Funcionário " GET id0_func PIC "999";
VALID !CHEX (id0_func, id0_func);
* Só aceitará funcionários não cadastrados.
MESSAGE "Funcionário já Cadastrado"
READ
O exemplo a seguir simula a operação feita pela função CHEX ().
DATABASE bdemp1 33 a 2
USE tab_func && Obriga que o arquivo esteja em uso.
DO WHILE .T.
@ 01,01 SAY "Matrícula do Funcionário " GET id0_func; PIC "999"
READ
FIND id0_func && Lê o arquivo pesquisando chave
IF FOUND ()
MESSAGE "Funcionário já Cadastrado"
LOOP && Retorna ao GET
ELSE
EXIT && Sai do comando DO WHILE
ENDIF
ENDDO
?, ??, @ ... GET, @ ... SAY, FIND, CHEXC(), CHEXM() e CHEXME().
