0

レコード形式が異なる 3 つの論理ファイルを使用しています。最初のサブファイルでは LF1 と LF2 を使用していますが、最初のサブファイルでは *LOVAL SETLL を使用できません。実行時エラーが発生します。なぜかわからない?

次に、プログラムは2番目のサブファイルに誘導し、LF3を使用していますが、問題ないようです。

しかし、最初のサブファイルに戻ると、サブファイルは空白になります.???? なぜ?

これは私のサブファイルを構築するための私のサブルーチンです:

C     CLRSR         BEGSR                                                                                             
C                   EVAL      *IN55='0'                                                                               
C                   WRITE     USQLSCTL                                                                                
C                   EVAL      *IN55='1'                                                                               
C                   ENDSR                                                                                             
C*                                                                                                                    
C*BUILDING SUBFILE                                                                                                    
C     BLDSR         BEGSR                                                                                             
C     *LOVAL        SETLL     USRLGX                                                                                 
C                   EVAL      RECNO=0                                                                                 


C                   EXSR      TMISR1                                                                                  
C                   EXSR      REDSR1                                                                                  

C                   DOW       NOT %EOF                                                                                
C                   IF        USRID<>IDD                                                                              
C                   EXSR      MVESR                                                                                   
C                   EXSR      DIMSR                                                                                   
C                   MOVE      USRID         IDD                                                                       
C                   EVAL      RECNO=RECNO+1                                                                           
C                   WRITE     USQLS                                                                                   
C                   ENDIF                                                                                             

C                   EXSR      TMISR1                                                                                   
C                   EXSR      REDSR1                                                                                   

C                   ENDDO                                                                                             
C                   ENDSR   

および関連するサブルーチン

C     TMISR1        BEGSR                                                                                             
C                   READ      USRLGX                                                                                  
C                   MOVE      USRTI         MINTI                                                                     
C                   ENDSR                                                                                             

C     REDSR1        BEGSR                                                                                             
C                   READ      USRLG                                                                                   
C                   MOVE      USRTO         MAXTO                                                                     
C                   ENDSR                                                       6                                      

n 私が使用した LF は USRLG と USRLGX です。ここで、両方の LF は同じレコード形式を参照します。ただし、各 LF のソート順は異なります。*レコードフォーマットはF-SpecでRENAMEされました

  • 私はこの2つの問題を抱えています:
  • *LOVAL setll logical-file は 1 回しか使用できません。
  • n 上記のコーディングの結果は、UserTimeIn の結果が得られる場合があります。
4

1 に答える 1

1

*LOVAL を使用する場合は常に、レコード アドレス タイプ "k" (プログラム内のキーを意味する) を使用する必要があります。

于 2012-08-17T11:41:37.283 に答える