1
與文件控制像這樣一個COBOL程序:動態READ ... RECORD INVALID KEY在COBOL中無法正常工作。如何解決它?
SELECT D-FLAT-FILE ASSIGN TO DFLAT-FILE
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS RECORD-STAT
RECORD KEY IS D_KEY OF D-FLAT-FILE DESCENDING WITH DUPLICATES.
SELECT C-MAST-FILE ASSIGN TO CMAST-FILE
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
FILE STATUS IS RECORD-STAT
RECORD KEY IS C_KEY OF C-MAST-FILE.
讀取從第一平面文件,像這樣的記載:
PROCESSING.
READ D-FLAT-FILE NEXT RECORD
AT END ....END READ.
和像這樣的第二動態文件讀取的記錄:
READ C-MAST-FILE RECORD
INVALID KEY
GO TO PROCESSING.
除1個情況外,所有的都很好。如果來自第一個平面文件的第一條記錄與第二個動態文件中的任何記錄不匹配,程序將進入無限循環而不是執行「轉至處理」。我檢查了手冊,全部按照手冊(它是VAX Cobol)。我錯過了什麼?
您在READ失敗後檢查了文件狀態嗎? – 2011-04-04 08:48:18
不,我不檢查。我其實想這樣做,但後來我被告知我無法檢查狀態,因爲我們不能寫日誌文件。 – Fet 2011-04-04 10:34:08
@Greg做到這一點。修改您的READ子句以顯示FS(用於調試),以便您知道那裏發生了什麼。 – 2011-04-04 11:36:02