Version 4.2.6
 —  Statements  —

GET SAME

Structured Mode-Syntax

GET SAME [(r)]

Reporting Mode-Syntax

GET SAME [(r)] [operand1 ]

Dieses Dokument behandelt folgende Themen:

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Verwandte Statements: ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW | PERFORM BREAK PROCESSING | READ | RETRY | STORE | UPDATE

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen


Funktion

Das Statement GET SAME dient dazu, einen Datensatz, der gerade verarbeitet wird, erneut zu lesen. Das Statement wird in der Regel dazu verwendet, Werte von Datenbank-Arrays (Periodengruppen oder multiplen Feldern) zu erhalten, falls die Nummer(n) und der Bereich der vorhandenen bzw. gewünschten Ausprägung(en) nicht bekannt war, als der Datensatz zum erstenmal gelesen wurde.

Seitenanfang

Einschränkungen

Seitenanfang

Syntax-Beschreibung

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand1   S A     A U N P     B             nein ja

Syntax-Element-Beschreibung:

( r)
Statement-Referenz:

Die Notation (r) wird benutzt, um das Statement anzugeben, das das FIND- oder READ-Statement enthält, mit dem der Datensatz zum erstenmal gelesen wurde.

Falls keine Referenzierung erfolgt, bezieht sich das GET SAME-Statement auf die innerste aktive Verarbeitungsschleife.

(r) kann als ein Statement-Label oder eine Sourcecode- Zeilennummer angegeben werden.

operand1
Angabe der Felder:

Als operand1 geben Sie das Feld bzw. die Felder an, deren Werte Sie mit dem GET SAME-Statement erhalten wollen.

Anmerkung:
operand1 kann nicht angegeben werden, wenn das Feld in einem DEFINE DATA-Statement definiert ist.

Seitenanfang

Beispiel

** Example 'GSAEX1': GET SAME                                           
************************************************************************
DEFINE DATA LOCAL                                                       
1 I                (P3)                                                 
1 POST-ADDRESS VIEW OF EMPLOYEES                                        
  2 FIRST-NAME                                                          
  2 NAME                                                                
  2 ADDRESS-LINE   (I:I)                                                
  2 C*ADDRESS-LINE                                                      
  2 POST-CODE                                                           
  2 CITY                                                                
*                                                                       
1 #NAME            (A30)                                                
END-DEFINE                                                              
*                                                                       
FORMAT PS=20                                                            
MOVE 1 TO I                                                             
*                                                                       
READ (10) POST-ADDRESS BY NAME                                          
  COMPRESS NAME FIRST-NAME INTO #NAME WITH DELIMITER ','   
  WRITE // 12T #NAME                                       
  WRITE /  12T ADDRESS-LINE (I.1)                          
  /*                                                       
  IF C*ADDRESS-LINE > 1                                    
    FOR I = 2 TO C*ADDRESS-LINE                            
      GET SAME                      /* READ NEXT OCCURRENCE
      WRITE 12T ADDRESS-LINE (I.1)                         
    END-FOR                                                
  END-IF                                                   
  WRITE / POST-CODE CITY                                   
  SKIP 3                                                   
END-READ                                                   
END  
 
                                                  

Ausgabe des Programms GSAEX1:

Page      1                                                  05-01-13  13:23:36
                                                                               
                                                                               
                                                                               
           ABELLAN,KEPA                                                        
                                                                               
           CASTELAN 23-C                                                       
                                                                               
28014      MADRID                                                              
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
           ACHIESON,ROBERT                                                     
                                                                               
           144 ALLESTREE LANE                                                  
           DERBY                                                               
           DERBYSHIRE                                                          
                                                                               
DE3 4TR    DERBY                                                              

Seitenanfang