Nota:
Por padrão, somente a after-image é relatado para critério "IF field-name CHANGES". Se você quer o relatório tanto da before-image e depois after-image de um campo alterado usando ADASEL, especifique a opção BOTH na instrução DISPLAY ou especificar as opções loginfo, estendida ou SPANREC na instrução de saída para do job. Para obter mais informações, leia Instrução de DISPLAY ou Instrução de OUTPUT
A sintaxe para o grupo fazer é o seguinte:
DO { output-instruction }... DOEND
Um grupo DO é uma sequência de instruções de saída (NewPage, SKIP, DISPLAY e OUTPUT). O grupo deve começar com a palavra DO e terminam com a palavra-chave DOEND. Um grupo não pode conter alinhados IF e não pode ser alinhado dentro de outro grupo DO.
Instrução IGNORE do ADASEL não exibira ou saída de um item. Nem a imagem anterior (BI) ou o pós-imagem (AI) é produzido como saída quando um item é ignorado. Quando especificado em uma instrução então, IGNORE não será exibido ou saída do item se encontra especificado o valor-critério ou o critério de mudanças do IF. Quando especificado em uma instrução ELSE, IGNORE não será exibido ou a saída do item se ele não atender o especificado o valor-critério ou o critério de mudanças do IF.
Exemplo:
SELECT ALL FROM FILE 77
IF AA ='SMITH' THEN
IF BB CHANGES THEN DO
DISPLAY 'Field BB changed:' BB AA CC
SKIP 1 LINE
DOEND
ELSE DISPLAY AA BB CC
ELSE IGNORE
END
value-criterion
O valor-critério é usado em uma cláusula WITH ou uma instrução IF para selecionar registros com base em um valor ou valores. Ela tem a seguinte sintaxe:

A cláusula BUT NOT exclui um valor ou uma subfaixa de valores dentro dos registros selecionados.
Objeto da Comparação
ADASEL pode comparar um valor ou intervalo de valores para qualquer um dos seguintes:
Logical Operator
Você pode expressar operadores lógicos de igualdades e desigualdades em palavras, abreviaturas ou símbolos, como mostrado na tabela a seguir:
Nota:
A representação hexadecimal do símbolo = é ¬ X'5F7E.
Formato da Relação
O formato do valor de critério depende do formato padrão do item que é o objeto da comparação.
O formato padrão de um campo Adabas (nome do campo) é o formato especificado na FDT. A tabela a seguir mostra o comprimento máximo (em bytes) e os formatos válidos para expressar o valor de critério:
Exemplo Valor de Formato 2:
Se o formato padrão é packed ou unpacked decimal, o valor é expresso em dígitos decimais (0-9). Um sinal de menos indica um valor negativo. Até 29 dígitos (excluindo o sinal de menos) são permitidos. Outros caracteres especiais ($, pontos decimais, vírgulas, etc) não são permitidas.
NU = 123456789 NU = -987654321
Exemplo Valor de Formato 3:
Se o formato padrão é binário, o valor pode ser expresso no formato hexadecimal ou numérico.
Até 252 dígitos hexadecimais (126 bytes) são permitidos para um campo Adabas binário.
No formato numérico, de até 10 dígitos decimais (4 bytes binários) são permitidos. Assim, um valor binário, expresso em dígitos decimais podem variar de -2.147.483.648 através 2.147.483.647.
BB = 2147483647 or BB = X'80000000' BB = -2147483648 or BB = X'7FFFFFFF'
Os valores alfanuméricos
Coloque um valor alfanumérico em apóstrofos:
AA ='SMITH'
Para indicar um apóstrofo dentro de uma seqüência alfanumérica, utilize dois apóstrofos sucessivas sem nenhum espaço ou caractere:
JJ ='Smith''s Market'
Valores hexadecimais
Comece um valor hexadecimal com o "X" e coloque o valor entre apóstrofos:
AA = X'E2D4C9E3C8'
Um valor hexadecimal deve ter um número par de caracteres hexadecimal:
JJ = X'04D2'
Continuação de Linha
ADASEL trata colunas 1-72 como a linha de entrada. Para continuar um valor alfanumérico ou hexadecimal em linhas adicionais, coloque o apóstrofo fechando apenas no final de toda a cadeia. O valor é concatenado até o fechamento apóstrofo é encontrado.
Em uma seqüência alfanumérica, ADASEL inclui esquerda e à direita espaços dentro de apóstrofos como parte da cadeia, mas ignora-los em uma string hexadecimal.
Exemplo 1: seqüência alfanumérica
1......................................................................2 AA ='THIS IS AN EXAMPLE OF HOW TO CONTINUE AN ALPHANUMERIC VALU E. KEY THROUGH COLUMN 72 AND CONTINUE IN COLUMN 1 OF THE NEXT LINE.' 7 1......................................................................2 AA ='DO NOT CONTINUE AN ALPHA VALUE THIS WAY. LEADING AND TRAILING SPACES IN COLUMNS 1-72 ARE INCLUDED.'
ADASEL trata o segundo valor acima da seguinte forma:
'DO NOT CONTINUE AN ALPHA VALUE THIS WAY. LEADING AND TRAILING BLANKS IN COLUMNS 1-72 ARE INCLUDED.'
Example 2: Hexadecimal String
7 1......................................................................2 XX = X'C1C2C3C4C5C6C7C8C9 D1D2D3D4D5D6D7D8D9' ADASEL trata o valor hexadecimal acima da seguinte forma: X'C1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9'
Indexes for MUs and PE Member Fields
MU Field or a Member Field of a PE
Se o campo nome refere-se a um campo de valor múltiplo (MU) ou a um campo de membro de um grupo de periódicos (PE), você deve incluir o índice (número de ocorrências) imediatamente após o nome:
AAi - onde "AA" é o nome de campo de um MU e i é o índice
BBk - onde "BB" é um campo de membro de um PE e o k é o índice do PE
Valores válidos para i e k intervalo de "1 "a "65.534" se você tiver Adabas usando o 8 ou superior instalado e se estendeu MU e contagens PE são solicitadas, caso contrário os valores válidos variam de "1" a "191".
Nota: O uso de mais de 191 campos ou grupos MU e PE em um arquivo deve ser explicitamente permitido para um arquivo (não é permitido por padrão). Isso é feito usando a função ADADBS MUPEX function or the ADACMP COMPRESS MUPEX and MUPECOUNT parameters.
Exemplos:
No arquivo 12, o campo JT é um MU. A declaração a seguir seleciona todos antes before-images, onde a segunda ocorrência do JT é "Programmer":
SELECT BI FROM FILE 12 WITH JT2 = 'Programmer' DISPLAY NA END
O campo SA é membro de um PE. A declaração a seguir seleciona todos os registros em SA na terceira ocorrência do grupo periódica é igual ou superior a 35000:
SELECT ALL FROM 12 WITH SA3 >= 35000 DISPLAY NA SA3 END
MU contido dentro de um PE
Se o MU está contido dentro de um PE, ambos os índices (PE e MU) deve ser especificado:
ABk(i) - onde "AB"é o nome de um MU, i é a ocorrência de AB, e k é a ocorrência do PE ao qual pertence AB
Exemplo:
No arquivo 211, o ST campo de valor múltiplo é membro de um PE. A declaração a seguir seleciona todos os registros em que a terceira ocorrência da ST na segunda ocorrência do grupo de periódicos é "PAST DUE":
SELECT ALL FROM FILE 211 WITH ST2(3) ='PAST DUE' DISPLAY AA BB ST2(3) END
output-instruction
Instruções de saída ADASEL incluem OUTPUT, SKIP, e NEWPAGE. Pelo menos uma instrução de saída é necessário, isoladamente ou dentro de uma instrução IF. Instruções de saída pode ser especificado. A sintaxe é mostrada abaixo:

Instrução DISPLAY
DISPLAY escreve o relatório de saída para DDDRUCK/Druck. A sintaxe especifica um ou mais tipos de saída. Ao especificar múltiplos tipos de saída, eles são separados por pelo menos um espaço:

Exemplos:
Para selecionar registros que foram modificados. Mostrar a sequência de texto "Os seguintes registros foram modificados". Em seguida, exibir os campos de AA e CC em formato hexadecimal e BB no formato definido na FDT:
Selecionar registros que foram modificados e exibir a contagem de ocorrências, seguido pelo valor hexadecimal do sétimo ao décimo segundo as ocorrências do campo MU XX:
Clique Aqui
Por padrão, somente a after-image é relatado para critério "IF field-name CHANGES". Se você quer o relatório tanto da before-image e depois after-image de um campo alterado usando ADASEL, especifique a opção BOTH na instrução DISPLAY ou especificar as opções loginfo, estendida ou SPANREC na instrução de saída para do job. Para obter mais informações, leia Instrução de DISPLAY ou Instrução de OUTPUT
A sintaxe para o grupo fazer é o seguinte:
DO { output-instruction }... DOEND
Um grupo DO é uma sequência de instruções de saída (NewPage, SKIP, DISPLAY e OUTPUT). O grupo deve começar com a palavra DO e terminam com a palavra-chave DOEND. Um grupo não pode conter alinhados IF e não pode ser alinhado dentro de outro grupo DO.
Instrução IGNORE do ADASEL não exibira ou saída de um item. Nem a imagem anterior (BI) ou o pós-imagem (AI) é produzido como saída quando um item é ignorado. Quando especificado em uma instrução então, IGNORE não será exibido ou saída do item se encontra especificado o valor-critério ou o critério de mudanças do IF. Quando especificado em uma instrução ELSE, IGNORE não será exibido ou a saída do item se ele não atender o especificado o valor-critério ou o critério de mudanças do IF.
Exemplo:
SELECT ALL FROM FILE 77
IF AA ='SMITH' THEN
IF BB CHANGES THEN DO
DISPLAY 'Field BB changed:' BB AA CC
SKIP 1 LINE
DOEND
ELSE DISPLAY AA BB CC
ELSE IGNORE
END
value-criterion
O valor-critério é usado em uma cláusula WITH ou uma instrução IF para selecionar registros com base em um valor ou valores. Ela tem a seguinte sintaxe:

A cláusula BUT NOT exclui um valor ou uma subfaixa de valores dentro dos registros selecionados.
Objeto da Comparação
ADASEL pode comparar um valor ou intervalo de valores para qualquer um dos seguintes:
- O conteúdo do campo especificado. O campo nome deve ser o nome de dois caracteres Adabas de um campo fundamental na FDT. Não pode se referir a um grupo, periódicos (PE), superdescriptor, subdescritor, descritor fonético, ou hyperdescriptor. No entanto, ele pode se referir a um campo de valor múltiplo (MU) ou de um campo de membro de um grupo de periódicos (PE);
- O ISN, isto é, o Adabas número de sequência interna do disco.
- USERDATA, ou seja, os dados do usuário escrito por um comando C5.
- UserID, ou seja, o ID de usuário (ETID) do usuário que acrescentados, apagados ou atualizados o registro.
- USERTID, isto é, a identificação do terminal do usuário que acrescentados, apagados ou atualizados o registro.
Logical Operator
Você pode expressar operadores lógicos de igualdades e desigualdades em palavras, abreviaturas ou símbolos, como mostrado na tabela a seguir:
Comparison | Words | Abbreviation | Symbol |
---|---|---|---|
Equals | EQUAL | EQ | = |
Greater than | GREATER THAN | GT | > |
Greater than or equal to | GREATER EQUAL | GE | > = |
Less than or equal to | LESS EQUAL | LE | < = |
Less than | LESS THAN | LT | < |
Not equal to | NOTEQUAL | NE | ¬= |
Nota:
A representação hexadecimal do símbolo = é ¬ X'5F7E.
Formato da Relação
O formato do valor de critério depende do formato padrão do item que é o objeto da comparação.
O formato padrão de um campo Adabas (nome do campo) é o formato especificado na FDT. A tabela a seguir mostra o comprimento máximo (em bytes) e os formatos válidos para expressar o valor de critério:
Criterion Value | Max. Bytes | Max. Digits | |
---|---|---|---|
Field Format in FDT | Valid Formats | ||
Alphanumeric | Alphanumeric | 253 | |
Hexadecimal | 253 | 506 | |
Decimal (Packed or Unpacked) | Decimal digits (0-9) | 29 * | |
Binary | Decimal | 4 * | 10 |
Hexadecimal | 126 | 252 | |
Floating-Point | Hexadecimal | 8 | 16 |
Fixed-Point | Hexadecimal | 4 | 8 |
Wide-character | Hexadecimal | 253 | 506 |
* Excluding minus sign
Os formatos padrão e comprimento máximo (em bytes) para os demais itens são os seguintes:
Item | Default Format | Criterion Value | |
---|---|---|---|
Valid Formats | Max. Length | ||
ISN | Binary | Decimal, hexadecimal | 4 |
USERDATA | Alphanumeric | Alphanumeric, hexadecimal | 30 |
USERID | Binary, alphanumeric | Decimal, hexadecimal | 8 |
USERTID | Binary, alphanumeric | Decimal, hexadecimal | 8 |
Formato do Valor Exemplo 1:
Se o formato padrão é alfanumérico, o valor pode ser expresso no formato alfanumérico ou hexadecimal.
BA EQ 'SMITH' or BA EQ X'E2D4C9E3C8'
Exemplo Valor de Formato 2:
Se o formato padrão é packed ou unpacked decimal, o valor é expresso em dígitos decimais (0-9). Um sinal de menos indica um valor negativo. Até 29 dígitos (excluindo o sinal de menos) são permitidos. Outros caracteres especiais ($, pontos decimais, vírgulas, etc) não são permitidas.
NU = 123456789 NU = -987654321
Exemplo Valor de Formato 3:
Se o formato padrão é binário, o valor pode ser expresso no formato hexadecimal ou numérico.
Até 252 dígitos hexadecimais (126 bytes) são permitidos para um campo Adabas binário.
No formato numérico, de até 10 dígitos decimais (4 bytes binários) são permitidos. Assim, um valor binário, expresso em dígitos decimais podem variar de -2.147.483.648 através 2.147.483.647.
BB = 2147483647 or BB = X'80000000' BB = -2147483648 or BB = X'7FFFFFFF'
Os valores alfanuméricos
Coloque um valor alfanumérico em apóstrofos:
AA ='SMITH'
Para indicar um apóstrofo dentro de uma seqüência alfanumérica, utilize dois apóstrofos sucessivas sem nenhum espaço ou caractere:
JJ ='Smith''s Market'
Valores hexadecimais
Comece um valor hexadecimal com o "X" e coloque o valor entre apóstrofos:
AA = X'E2D4C9E3C8'
Um valor hexadecimal deve ter um número par de caracteres hexadecimal:
JJ = X'04D2'
Continuação de Linha
ADASEL trata colunas 1-72 como a linha de entrada. Para continuar um valor alfanumérico ou hexadecimal em linhas adicionais, coloque o apóstrofo fechando apenas no final de toda a cadeia. O valor é concatenado até o fechamento apóstrofo é encontrado.
Em uma seqüência alfanumérica, ADASEL inclui esquerda e à direita espaços dentro de apóstrofos como parte da cadeia, mas ignora-los em uma string hexadecimal.
Exemplo 1: seqüência alfanumérica
1......................................................................2 AA ='THIS IS AN EXAMPLE OF HOW TO CONTINUE AN ALPHANUMERIC VALU E. KEY THROUGH COLUMN 72 AND CONTINUE IN COLUMN 1 OF THE NEXT LINE.' 7 1......................................................................2 AA ='DO NOT CONTINUE AN ALPHA VALUE THIS WAY. LEADING AND TRAILING SPACES IN COLUMNS 1-72 ARE INCLUDED.'
ADASEL trata o segundo valor acima da seguinte forma:
'DO NOT CONTINUE AN ALPHA VALUE THIS WAY. LEADING AND TRAILING BLANKS IN COLUMNS 1-72 ARE INCLUDED.'
Example 2: Hexadecimal String
7 1......................................................................2 XX = X'C1C2C3C4C5C6C7C8C9 D1D2D3D4D5D6D7D8D9' ADASEL trata o valor hexadecimal acima da seguinte forma: X'C1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9'
Indexes for MUs and PE Member Fields
MU Field or a Member Field of a PE
Se o campo nome refere-se a um campo de valor múltiplo (MU) ou a um campo de membro de um grupo de periódicos (PE), você deve incluir o índice (número de ocorrências) imediatamente após o nome:
AAi - onde "AA" é o nome de campo de um MU e i é o índice
BBk - onde "BB" é um campo de membro de um PE e o k é o índice do PE
Valores válidos para i e k intervalo de "1 "a "65.534" se você tiver Adabas usando o 8 ou superior instalado e se estendeu MU e contagens PE são solicitadas, caso contrário os valores válidos variam de "1" a "191".
Nota: O uso de mais de 191 campos ou grupos MU e PE em um arquivo deve ser explicitamente permitido para um arquivo (não é permitido por padrão). Isso é feito usando a função ADADBS MUPEX function or the ADACMP COMPRESS MUPEX and MUPECOUNT parameters.
Exemplos:
No arquivo 12, o campo JT é um MU. A declaração a seguir seleciona todos antes before-images, onde a segunda ocorrência do JT é "Programmer":
SELECT BI FROM FILE 12 WITH JT2 = 'Programmer' DISPLAY NA END
O campo SA é membro de um PE. A declaração a seguir seleciona todos os registros em SA na terceira ocorrência do grupo periódica é igual ou superior a 35000:
SELECT ALL FROM 12 WITH SA3 >= 35000 DISPLAY NA SA3 END
MU contido dentro de um PE
Se o MU está contido dentro de um PE, ambos os índices (PE e MU) deve ser especificado:
ABk(i) - onde "AB"é o nome de um MU, i é a ocorrência de AB, e k é a ocorrência do PE ao qual pertence AB
Exemplo:
No arquivo 211, o ST campo de valor múltiplo é membro de um PE. A declaração a seguir seleciona todos os registros em que a terceira ocorrência da ST na segunda ocorrência do grupo de periódicos é "PAST DUE":
SELECT ALL FROM FILE 211 WITH ST2(3) ='PAST DUE' DISPLAY AA BB ST2(3) END
output-instruction
Instruções de saída ADASEL incluem OUTPUT, SKIP, e NEWPAGE. Pelo menos uma instrução de saída é necessário, isoladamente ou dentro de uma instrução IF. Instruções de saída pode ser especificado. A sintaxe é mostrada abaixo:

Instrução DISPLAY
DISPLAY escreve o relatório de saída para DDDRUCK/Druck. A sintaxe especifica um ou mais tipos de saída. Ao especificar múltiplos tipos de saída, eles são separados por pelo menos um espaço:

field-name | exibe o conteúdo do campo especificado. O campo nome deve ser o nome de dois caracteres do campo Adabas de um campo fundamental na FDT. Nome do campo não pode se referir a um grupo, periódicos (PE), superdescriptor, subdescritor, descritor fonético, ou hyperdescriptor. No entanto, pode referir a um campo de valor múltiplo (MU) ou um membro de um domínio PE; índices de MUs e campos de membros do PE são discutidos na seção MU or PE Fields. |
ALL | exibe todos os campos de cada registro selecionado, incluindo campos MU eo PE do grupo e conta a sua ocorrência. Para uma FDT com muitos campos, pode ser necessário aumentar o parâmetro LST global em um SET GLOBALS statement proporcionar espaço suficiente para o grande número de registros. Esta opção está disponível para ambos os SELECT do usuário e FROM SELECT FILE (em arquivo) cláusulas de um parâmetro SELECT. |
BEFORE | indica que apenas before image de dados de registro do protection log deve sair. Esta opção é válida somente dentro IF contendo uma ou mais especificações CHANGE. Esta opção é opcional e é mutuamente exclusiva com a opção de BOTH. Se o BOTH e nem BEFORE for especificado, somente after image de proteção de dados de registro é a saída. |
BOTH | indica que, tanto antes (both before) como depois de imagens (after images) de dados de registro do protection log devem sair na saída. Esta opção é válida somente dentro IF contendo uma ou mais especificações CHANGES. Esta opção é opcional e é mutuamente exclusivo com o antes da opção. f nem antes nem AMBOS for especificado, somente após a imagem de proteção de dados de registro é a saída. |
COUNT | exibe o número de ocorrências nos dados selecionados do campo MU ou no campo grupo PE especificado após a opção COUNT. Se um ou mais valores do MU ou do campo PE devem ser exibidas, bem como, eles devem ser especificados separadamente. |
option | exibe o valor hexadecimal que corresponda ao tipo de saída. HEX é especialmente útil se a saída contém caracteres não imprimíveis. Deixe pelo menos um espaço entre o tipo de saída e a palavra-chave HEX seguinte. |
ISNv | exibe cada ISN selecionado no registro. |
USERDATA | exibe registros gravados no log de proteção com um comando C5. O número do arquivo de verificação deve ser especificada na instrução SELECT. |
USERID | exibe a identificação do usuário que adicionou, excluído ou atualizado o registro. |
USERTID | exibe a TID do usuário que fez adicionou, deletou, ou atualizou no registro. |
NOHEADER | suprime o cabeçalho. |
'text' | mostra a seqüência de texto. |
Exemplos:
Para selecionar registros que foram modificados. Mostrar a sequência de texto "Os seguintes registros foram modificados". Em seguida, exibir os campos de AA e CC em formato hexadecimal e BB no formato definido na FDT:
SELECT UPDATED RECORDS FROM FILE 117Apresentar o campo da AA cada novo registro, juntamente com o ID de usuário e ID de terminal do usuário que adicionou o registro; suprimir o cabeçalho:
DISPLAY 'Os seguintes registros foram modificados:'
DISPLAY AA HEX BB CC HEX
END
SELECT NEW RECORDS FROM FILE 211
DISPLAY AA USERID USERTID NOHEADER
END
Selecionar registros que foram modificados e exibir a contagem de ocorrências, seguido pelo valor hexadecimal do sétimo ao décimo segundo as ocorrências do campo MU XX:
SELECT UPDATED RECORDS FROM FILE 32
DISPLAY COUNT XX XX7-12 HEX
END
Clique Aqui
Já tentou usar a sintaxe com DISPLAY ALL? Eu tentei e está dando erro de syntax. Segue exemplo:
ResponderEliminar//DDKARTE DD *
SELECT ALL RECORDS FROM FILE xyz
STARTING FROM 20111220/154800
ENDING AT 20111220/155800
DISPLAY ALL
END
/*