0

我正在使用三个具有不同记录格式的逻辑文件,在第一个子文件上我使用 LF1 和 LF2,在第一个子文件上我不能使用 *LOVAL SETLL 它会给我运行时错误。不知道为什么?

然后程序将引导我进入第二个子文件,我正在使用 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 上重命名

  • 我有这两个问题是:
  • 我只能使用一次 *LOVAL setll 逻辑文件。
  • n上面的编码结果有时会给出UserTime的结果在某些时候它等于空白。(000000)
4

1 回答 1

1

当您使用 *LOVAL 时,您必须使用记录地址类型“k”(表示程序中的键)

于 2012-08-17T11:41:37.283 回答