為什麼會出現這個訊息呢?
主要原因在於AS400的SUBFILE裡有一個控制筆數的變數
這個變數叫做RRN(Relative Record Number)
通常在DSPF(Display File)宣告的時候就會指定
圖中的TESTDS就是我的DSPF
當你不確定你的檔案格式應該要在哪裡輸入哪些元素時
可以在左邊的0022.00這些數字上輸入IF(Insert Format)
後面再接著輸入所需要的格式,如IFFC就會出現FC的格式
按執行後就會出現跟上面定義一樣的格式FC
也可以在IF後面加問號(IF?)查詢可以輸入哪些格式
而要查詢格式用途時,可以各種語言上的格式案F1
舉例用COBOL,游標只要停留在COBOL這一行的任何一個地方上按下F1鍵
就可以看到每種格式的簡介了喔^^
這 裡 是 分 隔 線
好了!離題離太遠了啦~~~真不好意思XD
重點出現Session or device error occurred這個錯誤訊息要怎麼處理呢?
主因在於RRN為0所造成的
在AS/400裡RRN及Array的起始值必須大於0,否則就為出錯!
大部份會寫入SUBFILE都是從檔案讀取寫入的
而當條件篩選後沒有符合的資料時,SUBFILE的RRN就不會增加
此時RRN依舊為0
那要怎麼辦?例外處理嗎?
當然可以
要在兩個地方著手
1.DSPF的SUBCTL的記錄裡要定義要顯示SUBFILE的時機,在SFLDSP(Subfile Display)定義燈號32
2.光靠DSPF的定義是不夠的,我們必須在程式做例外處理,這樣以RRN1與0比較之後,如果大於0,
燈號32就為亮起,否則不亮,就不會顯示SUBFILE了
好啦~這樣是不是很簡單呢?^^
有問題歡迎留言詢問喔!
在下一定知無不答~
留言列表