|
I dont see where the key is being changed in this code. What part of the key will be changed when you write out your new record? >>> dnott@xxxxxxxxxxxxx 04/17/03 08:54AM >>> I have racking my brain yesterday on how to use the WRITE statement with getting the Status 22 Write Error. What I am trying to do is to read a record. Do a small calculation on it and then use the results of that calculation to write a brand new record in the same file. When I run the program it gives me the Status 22 error that I am trying to write a duplicate record. If anyone can help, that would be great. Thanks! Diane Here is part of my code: This is what I have in the Input-Output Section: SELECT STUDENT-HISTORY-FILE ASSIGN TO DATABASE-STCHSL0 ORGANIZATION INDEXED ACCESS IS DYNAMIC RECORD KEY IS EXTERNALLY-DESCRIBED-KEY FILE STATUS IS DBSTATUS. Data Section: OPEN I-O STUDENT-HISTORY-FILE. IF DBSTATUS NOT = ZERO, DISPLAY 'UNABLE TO ACCESS STCHSLT-FILE; ' 'STATUS IS ' DBSTATUS PERFORM 999-STOP-RUN. Starting the file: MOVE 0 TO R9NMID MOVE 'COMP' TO R9CQAA. MOVE 'XX' TO R9CMAA. MOVE 2 TO R9KHAA. MOVE 'MPRQ' TO R9B1AA. MOVE '171' TO R9B2AA. START STUDENT-HISTORY-FILE KEY NOT LESS THAN EXTERNALLY-DESCRIBED-KEY INVALID KEY CONTINUE. IF DBSTATUS NOT = ZERO, DISPLAY 'UNABLE TO ACCESS STCHSLT-FILE; ' 'STATUS IS ' DBSTATUS PERFORM 999-STOP-RUN. Procedure Division: 622-CREATE-031-RECORD. MOVE R9NMID TO WS-ID. PERFORM 630-CREATE-RECORD. DISPLAY R9CQAA ' ' R9CMAA ' ' R9KHAA ' ' R9B1AA ' ' R9B2AA. WRITE STUDENT-HISTORY-REC INVALID KEY DISPLAY 'DBSTATUS IS ' DBSTATUS. CONTINUE. EVALUATE DBSTATUS WHEN "22" DISPLAY "DUPLICATE PRI KEY: ", STUDENT-HISTORY-REC ADD 1 TO WS-COUNT-3. 630-CREATE-RECORD. MOVE SPACES TO STUDENT-HISTORY-REC. MOVE WS-ID TO R9NMID. MOVE 'COMP' TO R9CQAA. MOVE spaces TO R9KUAA. MOVE 'XX' TO R9CMAA. MOVE spaces TO R9KVAA. MOVE 3 TO R9KHAA. MOVE 'MPRQ' TO R9B1AA. MOVE RPT-COURSE-NUMBER TO R9B2AA. MOVE SPACES TO R9BWAA. MOVE 'E' TO R9B3AA. MOVE SPACES TO R9K2AA. MOVE SPACES TO R9KIAA. MOVE SPACES TO R9KJAA. MOVE SPACES TO R9KKAA. MOVE SPACES TO R9CIAA. MOVE SPACES TO R9CAAA. MOVE SPACES TO R9CEAA. MOVE ZERO TO R9J2AA. MOVE SPACES TO R9I8AA. MOVE SPACES TO R9I9AA. MOVE SPACES to R9MLAA. MOVE SPACES TO R9K5AA. MOVE SPACES TO R9MWAG. MOVE SPACES TO R9PTAA. MOVE 'DIANE' TO R9LRAZ. MOVE ZERO TO R9KLAA. MOVE ZEROES TO R9ZZAD. MOVE ZERO TO R9KWAA. MOVE ZERO TO R9LXAA. MOVE ZEROES TO R9KQAA. MOVE ZEROES TO R9KRAA. MOVE ZEROES TO R9KXAA. MOVE ZEROES TO R9KYAA. MOVE ZERO TO R9KSAA. MOVE ZERO TO R9KTAA. MOVE ZERO TO R9NTAA. MOVE ZERO TO R9JIAB. MOVE ZERO TO R9LIAG. MOVE ZERO TO R9LKAG. MOVE ZERO TO R9LLAG. MOVE ZERO TO R9LJAG. MOVE ZERO TO R9XPAK. MOVE ZERO TO R9XMAK. MOVE ZERO TO R9V5AP. MOVE ZERO TO R9V6AP. MOVE ZERO TO R9V7AP. MOVE ZERO TO R9V8AP. MOVE ZERO TO R9JYAU. MOVE ZERO TO R9NNAZ. MOVE ZERO TO R9NOAZ. MOVE ZERO TO R9NPAZ. MOVE ZERO TO R9NQAZ. MOVE ZERO TO R9N0AZ. MOVE ZERO TO R9N1AZ. MOVE ZERO TO R9QQAK. MOVE ZERO TO R9QMAK. MOVE ZERO TO R9QNAK. MOVE ZERO TO R9QOAK. MOVE ZERO TO R9QPAK. MOVE ZERO TO R9Q3AD. MOVE ZERO TO R9Q7AD. MOVE 'INM009 ' TO R9USR. MOVE 'COMPASS3 ' TO R9JOB. ACCEPT RUN-DATE FROM DATE. MOVE RUN-DATE TO DATE-CCYYMMDD. IF DATE-YY-1 > 90 MOVE 00 TO DATE-CC ELSE MOVE 01 TO DATE-CC. MOVE DATE-CCYYMMDD TO R9JDT. ACCEPT RUN-TIME FROM TIME. COMPUTE TIME-HHMMSS = RUN-TIME / 100. MOVE TIME-HHMMSS TO FORMATTED-TIME. INSPECT FORMATTED-TIME REPLACING ALL '/' BY ':'. MOVE FORMATTED-TIME TO R9JTM. _______________________________________________ This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing list To post a message email: COBOL400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo.cgi/cobol400-l or email: COBOL400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/cobol400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.