逻辑文件不适用于子文件/SETLL



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

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

我使用的LF是USRLG和USRLGX。其中两个 LF 引用相同的记录格式。但是每个 LF 都有不同的排序顺序。*记录格式已在 F-Spec 上重命名

  • 我有两个问题,即:
  • 我只能使用*LOVAL设置逻辑文件一次。
  • n 上面的编码结果有时它会给出 UserTime 的结果有时它等于空白。(000000)

当你使用*LOVAL时,你必须使用记录地址类型"k"(表示在程序中键入)

相关内容

  • 没有找到相关文章

最新更新