0
我正在使用三個不同記錄格式的邏輯文件 其中第一個子文件我使用LF1和LF2 哪裏第一個子文件我不能使用* LOVAL SETLL它會給我運行時錯誤。 不知道爲什麼?邏輯文件不適用於SUBFILE/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
ñ我用LF是USRLG和USRLGX。 其中兩個LF表示相同的記錄格式。但每個LF都有不同的排序順序。 *記錄格式已被重新命名F-規格
- 我有這個兩個問題是:
- 我只能用* LOVAL SETLL邏輯文件一次只。
- n個結果的上述編碼的某個時候,它會給結果爲UserTimeIn一段時間,它等於空白。(000000)
LF中的鍵的定義是什麼,請在你的pgm中顯示它的I/O語句。你得到什麼鈴聲錯誤? – WarrenT 2012-08-16 03:51:04
另外,哪一個是'LF1',是'LF2'還是'LF3'?你在'DOW NOT%EOF'上等待什麼文件(如果可能,總是限定期望的文件) - 有兩種可能性(我們知道)。你還沒有提供3個子例程的定義,它們很重要嗎?並且_where_你得到運行時錯誤(和它是什麼)?也許最重要的是...... **爲什麼**你堅持以_columnar_格式工作 - 你在什麼版本的操作系統? – 2012-08-16 15:27:24
@ X-Zero我想我記得他是一名學生;語法的選擇(和'沒有SQL')不是他要做的。 – 2012-08-16 16:32:31