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

SORT ON

Propósito

Ordenar um arquivo para leitura seqüencial.

Sintaxe

SORT ON <item>[/A|/D|/C] [[SEEK <chav> =|$= <exp>]|[WHILE|FOR <exp.L>]] [ASCENDING | DESCENDING]

Argumentos

<item>                 representa o nome do item do arquivo que servirá como chave de ordenação para o arquivo.

/A                determina ordenação ascendente para o item (DEFAULT).

/D                determina ordenação descendente para o item.

/C                determina que letras maiúsculas e minúscula terão o mesmo valor para a ordenação.

SEEK <chav> =|$= <exp>    ordena apenas os registros cuja <chav> corresponda ao valor da <exp> (os operadores = e $= funcionam de maneira idêntica ao comando SEEK).

WHILE <exp.L>         ordena os registros enquanto estes atenderem a condição <exp.L>.

FOR <exp.L>             ordena todos os registros que atendam a condição <exp.L>.

ASCENDING             determinam que a ordenação será em ordem ascendente (DEFAULT).

DESCENDING             determinam que a ordenação será em ordem descendente.

Utilização

Quando necessário ordena um arquivo selecionado para um determinado tipo de operação (relatórios, pesquisas ,etc...).

Se mais de um item for utilizado para ordenação basta separá-los com uma "," (vírgula).

O comando SORT ON ordena o arquivo em um arquivo temporário.

Este comando é utilizado para leituras seqüenciais (LOCATE).

A opção SEEK faz com que um número menor de registros participem da ordenação , agilizando em muito este processo.

As opções FOR e WHILE são muito úteis quando se deseja que somente um grupo de registros participem da ordenação.

A cláusula /C pode ser conjugada com as cláusulas /A e /D.

DESCENDING inverte o sentido das ordenações por item (/A e /D).

Exemplo

O exemplo a seguir mostra-nos como ordenar de forma descendente um arquivo.

USE agenda.d

SORT ON numero,nome,ende

LOCATE

DO WHILE FOUND()

? "numero ", numero

? "nome ", nome

? "endereço ", ende

CONTINUE

ENDDO

O exemplo a seguir mostra-nos como ordenar o arquivo anterior, utilizando as cláusulas /A e /D.

Experimente utilizar a opção DESCENDING e note o resultado .

USE agenda.d

SORT ON numero/D,nome/AC,endereco/DC

LOCATE

DO WHILE FOUND()

? "numero ", numero

? "nome ", nome

? "endereço ", ende

CONTINUE

ENDDO

O exemplo a seguir mostra-nos como ordenar apenas os registros que tenham valor da chave cargo = gerente. Experimente utilizar a opção DESCENDING.

DATABASE exemplo 1 a 2

USE lotacao

SORT ON ano.inicio/D,salario/A,nomefun/AC;

SEEK cargo = "gerente"

LOCATE

DO WHILE FOUND()

? "departamento ", nomedep

? "funcionário ", nomefun

? "salario ", salario

?

CONTINUE

ENDDO

Consulte

$FILES, $OPEN, $TMP, LOCATE, SET PRINT, EOF( ), FLCONTINUE( ).

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