close

為什麼會出現這個訊息呢?

主要原因在於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了

 

好啦~這樣是不是很簡單呢?^^

有問題歡迎留言詢問喔!

在下一定知無不答~

 

 

 

 

 

arrow
arrow

    normanwang5271 發表在 痞客邦 留言(0) 人氣()