バージョン 4.2.5
 —  ステートメント  —

GET SAME

ストラクチャードモード構文

GET SAME [(r)]

レポーティングモード構文

GET SAME [(r)] [operand1 ]

このドキュメントでは、次のトピックについて説明します。

構文図で使用されている記号については、「構文記号」を参照してください。

関連ステートメント: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

関連機能グループ:「データベースへのアクセスと更新


機能

GET SAME ステートメントは、現在処理中のレコードを再度読み込むために使用します。 このステートメントは、最初にレコードを読む時点で、存在するオカレンスまたは使用するオカレンスの数や範囲がわからない場合に、データベース配列の値(PE または MU)を参照するために最もよく使用します。

Top of page

制限

Top of page

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand1   S A     A U N P     B             不可

構文要素の説明:

( r)
ステートメント参照:

表記rは、レコードの最初の読み取りに使用される FIND または READ ステートメントを含むステートメントを指定するために使用します。

(r) 指定がないと、GET SAME ステートメントは稼働している最も内側の処理ループに関連します。

rは、参照ステートメント番号またはステートメントラベルとして指定できます。

operand1
参照可能になるフィールド:

operand1 として、GET SAME ステートメントの結果、参照可能になるフィールドを指定します。

注意:
フィールドを DEFINE DATA ステートメントで定義している場合、operand1 は指定できません。

Top of page

** 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

プログラム 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                                                              

Top of page