2012-10-08 72 views
1

我聲明瞭一個順序文件:AS 400-順序文件沒有寫入。狀態沒有錯誤。 COBOL 400

SELECT F-MYFILE ASSIGN  DATABASE-MYFILE 
         ORGANIZATION SEQUENTIAL   
         ACCESS  SEQUENTIAL   
         STATUS  WW-STS-MYFILE. 

在我的COBOL程序,我打開它:

OPEN extend F-MYFILE 
    IF WW-STS-MYFILE NOT="00" 
     GO TO FINISH 
    END-IF     

    INITIALIZE MYFILE 
    MOVE "abcd" TO CONTENT OF MYFILE 
    WRITE MYFILE. 

雖然我寫的文件沒有顯示任何錯誤記錄狀態WW-STS-MYFILE,其'00'。 但是記錄仍然沒有寫入。 請您告訴可能的原因相同。

感謝

+0

Wat ?? 只是添加..我也檢查在「寫」時的文件堆棧。它正在開放 – user1714837

+0

是的,我已經檢查它在調試。 但今天當我在IO模式下打開文件寫入工作正常..我不明白爲什麼我的寫入工作正常與IO(索引文件),而不是EXTEND/OUTPUT(順序文件) – user1714837

回答

0

我不是那熟悉的AS/400,因爲我是一個z/OS的開發者,但拇指我已經遵循的規則是,你讀文件,但是你寫的記錄。如果MYFILE是文件名而不是該文件的記錄佈局,那麼您正在嘗試寫入文件而不是該文件的記錄。

+0

MYFILE然而,名字的一個好選擇是記錄佈局。它是INITIALIZE的目標,所以不能成爲一個文件。另外,編譯器會標記寫入文件的錯誤。 –

0

您的程序是否關閉該文件?該文件是否在承諾控制之下?如果您使用承諾控制,並且您沒有執行COMMIT或CLOSE,則在程序結束時,記錄將自動回滾。

如果您在程序仍在運行時嘗試查看該文件,在關閉該文件之前,該文件可能是文件緩衝問題。

+0

一些有趣的想法,可能是評論。關於這個問題的最後評論是否仍然適合? –