

Selecionar registros de um arquivo do banco de dados.
SEL[ECIONE] <item>[<nome>:] [[<num1>,<num2>]] <operador> <valor> [...]
SEL[ECIONE] NOME = <arquivo>
SEL[ECIONE] <CHAVE> = virtual (<valor>, ... <valorn>).
|
<item> |
representa o nome de um item no arquivo. |
|
<nome> |
representa o nome do arquivo a que pertence <item>, quando <item> for um nome que ocorra em mais de um arquivo. |
|
[<num1>,<num2>] |
determina uma pesquisa por subcadeia de caracteres, onde:
|
|
<operador> |
representa um operador relacional e indica o tipo de comparação a ser feita. |
|
<valor> |
representa um valor a ser comparado com o valor do item. Pode ser o nome de um item ou uma expressão do mesmo tipo de <item>. |
|
<arquivo> |
representa o nome de um arquivo de procedimentos de seleção guardado em disco. |
O comando SELECIONE é utilizado para determinar um conjunto de registros que será utilizado pelos comandos LISTE, IMPRIMA, ALTERE , CALCULE e EXCLUA, guardando o endereço dos registros em um arquivo em disco. Por "default" o arquivo de seleção é um arquivo temporário que é removido ao término da execução do GERAL. Havendo necessidade de manter este arquivo, utiliza-se o comando SELEÇÃO.
Um procedimento de seleção guardado em disco é criado utilizando-se um editor de textos e compõem-se de uma expressão relacional para pesquisa dos registros no banco de dados.
Uma pesquisa seqüencial é realizada sempre que um item não-chave estiver sendo procurado ou sempre que estiverem sendo usados os operadores relacionais <>, >, <, >= ou <=. Caso o comando LIGUE PERGUNTA tiver sido executado e em um procedimento de seleção seja necessária uma pesquisa seqüencial, a seguinte mensagem será enviada:
LEITURA SEQUENCIAL. PROSSIGO (S OU N) ?
O usuário neste momento deve responder digitando S, para confirmar a pesquisa seqüencial. Caso contrário, a pesquisa não será executada.
Depois do GERAL ter executado o comando SELECIONE com êxito, ele informa o número de registros lidos, enviando a seguinte mensagem:
FORAM SELECIONADOS <número> REGISTROS
onde <número> representa a quantidade de registros no arquivo de seleção.
Para os operadores relacionais = ou < > (diferente de), o usuário pode pedir ao GERAL que procure por mais de um valor para um mesmo item. Para isto, o usuário especifica os valores um após o outro, separados por vírgula.
A opção virtual no comando SEL é utilizada para chaves redefinidas ou virtuais, permitindo que sejam efetuadas leituras a partir de chaves redefinidas por itens de vários tipos de dados.
Recebe como argumento expressões para pesquisa, que devem ser passadas, separadas por vírgula e na ordem da redefinição da chave.
|
Operador relacional |
Significado |
|
= |
Igual |
|
<> |
Diferente |
|
< |
Menor |
|
> |
maior |
|
>= |
Maior ou igual |
|
<= |
Menor ou igual |
|
$= |
Prefixo de cadeia |
O exemplo a seguir mostra como selecionar registros utilizando a opção virtual.
$controle redefu
banco tecno 1
nome: func e
cod(0) u10
cod1 p04 pos cod
cod2 u08 pos cod + 2
Tecnocoop Sistemas
Comando? sel cod = virtual(0003,Maria)
O exemplo a seguir mostra como selecionar todos os registros que tenham o item PNOME1 com o valor
"LEITORA OPTICA".
COMANDO? SELECIONE PNOME1 = ;
"LEITORA OPTICA"
O exemplo a seguir mostra como selecionar todos os registros que tenham o item PRECO com valor menor que 5000.
COMANDO? SELECIONE PRECO < 5000
Os exemplos a seguir mostram como selecionar registros utilizando os conectores E e OU.
COMANDO? SELECIONE PNOME1 =+;
"LEITORA OPTICA" E LOCAL1 = "CANADA"
COMANDO? SELECIONE LOCAL1 =+;
"BR MEIOESTE" OU PRECO > 7500
COMANDO? SELECIONE CUSMAO < 100 OU; CUSMAO > 999 E PRECO= 150
O exemplo a seguir mostra dois modos de selecionar os registros que tenham o item LOCAL1 com valor "CANADA" ou "JAPAO".
COMANDO? SELECIONE LOCAL1="BR ESTE"+; "CANADA"
COMANDO? SELECIONE LOCAL1="BR ESTE"+;
OU LOCAL1="CANADA"
O exemplo a seguir mostra como selecionar registros fazendo com que o GERAL pergunte o valor para o item PNOME1 e PRECO.
? SELECIONE PNOME1="","" E PRECO="",""
QUAL O VALOR DE PNOME1? "LEITORA OPTICA"
QUAL O VALOR DE PNOME1? TELETIPO
QUAL O VALOR DE PRECO? 4900
QUAL O VALOR DE PRECO? 340
FORAM SELECIONADOS 00002 REGISTROS
COMANDO ?
O exemplo a seguir mostra como utilizar um procedimento de seleção, armazenado em um arquivo em disco.
Formato do arquivo de seleção: PNOME1 = "" OU LOCAL1 = "CANADA"
COMANDO ? SEL NOME = selarq.g
QUAL O VALOR DE PNOME1? "LEITORA OPTICA"
FORAM SELECIONADOS 000003 REGISTROS
O exemplo a seguir, mostra um arquivo existente num banco de dados e três procedimentos de seleção com seus respectivos arquivos de seleção com o número dos registros selecionados.
PNUM1 |
PNOME1 |
MODELO |
LOCAL1 |
PRECO |
CUSMAO |
CUSMAT |
END REG |
33000 |
DISCO ALTAVELOCIDADE |
5000 |
BR OESTE |
1800 |
220 |
460 |
1 |
33001 |
DISCO ALTA VELOCIDADE |
5000 |
BR ESTE |
1800 |
220 |
460 |
2 |
33002 |
DISCO ALTA VELOCIDADE |
5100 |
JAPAO |
1850 |
220 |
475 |
3 |
51000 |
LEITORA DE CARTAO |
5000 |
BR OESTE |
4900 |
500 |
650 |
4 |
07500 |
TELETIPO |
4000 |
JAPAO |
340 |
100 |
125 |
5 |
COMANDO ? SELECIONE PNOME1="DISCO ALTA"+;
VELOCIDADE" E LOCAL1 <> "BR OESTE"
FORAM SELECIONADOS 00002 REGISTROS
Arquivo de seleção
-------------------------------
| 2 | 3 | | | | |
-------------------------------
COMANDO ?SELECIONE LOCAL1="BR OESTE", "BR ESTE"
FORAM SELECIONADOS 00003 REGISTROS
Arquivo de seleção
-------------------------------
| 1 | 2 | 4 | .. | .. | .. |
-------------------------------
COMANDO?SELECIONE LOCAL1="BR OESTE","JAPAO" OU MODELO=5000
FORAM SELECIONADOS 00005 REGISTROS
Arquivo de seleção
-------------------------------
| 1 | 2 | 3 | 4 | 5 | .. |
-------------------------------
