[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

03/27/2009 at 09:52PM PDT, ID: 24273253
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

9.3

Runtime Error

Asked by mustish1 in COBOL Programming Language

Hi guys: Can any one please tell me why it gives run time error in the main program. I write two files. First one i create a blank data file. When i run the second file it gives a runtime error needs help.

Thanks.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
IDENTIFICATION DIVISION.
 PROGRAM-ID. VNDBLD01.
*------------------------------------------------
* Create an Empty Vendor File.
*------------------------------------------------
 ENVIRONMENT DIVISION.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
 
     SELECT VENDOR-FILE
         ASSIGN TO "vendor"
         ORGANIZATION IS INDEXED
         RECORD KEY IS VENDOR-NUMBER
         ACCESS MODE IS DYNAMIC.
 
 DATA DIVISION.
 FILE SECTION.
 
 FD  VENDOR-FILE
     LABEL RECORDS ARE STANDARD.
 01  VENDOR-RECORD.
     05  VENDOR-NUMBER                    PIC 9(5).
     05  VENDOR-NAME                      PIC X(30).
     05  VENDOR-ADDRESS-1                 PIC X(30).
     05  VENDOR-ADDRESS-2                 PIC X(30).
     05  VENDOR-CITY                      PIC X(20).
     05  VENDOR-STATE                     PIC X(2).
     05  VENDOR-ZIP                       PIC X(10).
     05  VENDOR-CONTACT                   PIC X(30).
     05  VENDOR-PHONE                     PIC X(15).
 
 WORKING-STORAGE SECTION.
 
 PROCEDURE DIVISION.
 PROGRAM-BEGIN.
     OPEN OUTPUT VENDOR-FILE.
     CLOSE VENDOR-FILE.
 
 PROGRAM-DONE.
     STOP RUN.
 
-----------------------------------------
 IDENTIFICATION DIVISION.
 PROGRAM-ID. VNDMNT01.
*---------------------------------
* Add, Change, Inquire and Delete
* for the Vendor File.
*---------------------------------
 ENVIRONMENT DIVISION.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.
		SELECT VENDOR-FILE ASSIGN TO "vendor" 
			ORGANIZATION IS INDEXED
			RECORD KEY IS VENDOR-NUMBER
			ACCESS MODE IS DYNAMIC.
 DATA DIVISION.
 FILE SECTION.
	FD VENDOR-FILE
		LABEL RECORDS ARE STANDARD.
	01 VENDOR-RECORD.
		05 VENDOR-NUMBER 	PIC 9(5).
		05 VENDOR-NAME 		PIC X(30).
		05 VENDOR-ADDRESS-1 PIC X(30).
		05 VENDOR-ADDRESS-2 PIC X(30).
		05 VENDOR-CITY 		PIC X(20).
		05 VENDOR-STATE 	PIC X(30).
		05 VENDOR-ZIP 		PIC X(10).
		05 VENDOR-CONTACT PIC X(30).
		05 VENDOR-PHONE PIC X(15).
 WORKING-STORAGE SECTION.
 
 77  MENU-PICK                    PIC 9.
     88  MENU-PICK-IS-VALID       VALUES 0 THRU 4.
 
 77  THE-MODE                     PIC X(7).
 77  WHICH-FIELD                  PIC 9.
 77  OK-TO-DELETE                 PIC X.
 77  RECORD-FOUND                 PIC X.
 77  VENDOR-NUMBER-FIELD          PIC 99999.
 
 PROCEDURE DIVISION.
 PROGRAM-BEGIN.
     PERFORM OPENING-PROCEDURE.
     PERFORM MAIN-PROCESS.
     PERFORM CLOSING-PROCEDURE.
 
 PROGRAM-DONE.
     STOP RUN.
 
 OPENING-PROCEDURE.
     OPEN I-O VENDOR-FILE.
 
 CLOSING-PROCEDURE.
     CLOSE VENDOR-FILE.
 
 
 MAIN-PROCESS.
     PERFORM GET-MENU-PICK.
     PERFORM MAINTAIN-THE-FILE
         UNTIL MENU-PICK = 0.
 
*---------------------------------
* MENU
*---------------------------------
 GET-MENU-PICK.
     PERFORM DISPLAY-THE-MENU.
     PERFORM GET-THE-PICK.
     PERFORM MENU-RETRY
         UNTIL MENU-PICK-IS-VALID.
 
 DISPLAY-THE-MENU.
     PERFORM CLEAR-SCREEN.
     DISPLAY "    PLEASE SELECT:".
     DISPLAY " ".
     DISPLAY "          1.  ADD RECORDS".
     DISPLAY "          2.  CHANGE A RECORD".
     DISPLAY "          3.  LOOK UP A RECORD".
     DISPLAY "          4.  DELETE A RECORD".
     DISPLAY " ".
     DISPLAY "          0.  EXIT".
     PERFORM SCROLL-LINE 8 TIMES.
 
 GET-THE-PICK.
     DISPLAY "YOUR CHOICE (0-4)?".
     ACCEPT MENU-PICK.
 MENU-RETRY.    
     DISPLAY "INVALID SELECTION - PLEASE RE-TRY.".
     PERFORM GET-THE-PICK.
 CLEAR-SCREEN.
     PERFORM SCROLL-LINE 25 TIMES.
 
 SCROLL-LINE.
     DISPLAY " ".
 
 MAINTAIN-THE-FILE.
     PERFORM DO-THE-PICK.
     PERFORM GET-MENU-PICK.
 
 DO-THE-PICK.
     IF MENU-PICK = 1
         PERFORM ADD-MODE
     ELSE
     IF MENU-PICK = 2
         PERFORM CHANGE-MODE
     ELSE
     IF MENU-PICK = 3
         PERFORM INQUIRE-MODE
     ELSE
     IF MENU-PICK = 4
         PERFORM DELETE-MODE.
 
*---------------------------------
* ADD
*---------------------------------
 ADD-MODE.
     MOVE "ADD" TO THE-MODE.
     PERFORM GET-NEW-VENDOR-NUMBER.
     PERFORM ADD-RECORDS
        UNTIL VENDOR-NUMBER = ZEROES.
 
 GET-NEW-VENDOR-NUMBER.
     PERFORM INIT-VENDOR-RECORD.
     PERFORM ENTER-VENDOR-NUMBER.
     MOVE "Y" TO RECORD-FOUND.
     PERFORM FIND-NEW-VENDOR-RECORD
         UNTIL RECORD-FOUND = "N" OR
               VENDOR-NUMBER = ZEROES.
 
 FIND-NEW-VENDOR-RECORD.
     PERFORM READ-VENDOR-RECORD.
     IF RECORD-FOUND = "Y"
         DISPLAY "RECORD ALREADY ON FILE"
         PERFORM ENTER-VENDOR-NUMBER.
 
 ADD-RECORDS.
     PERFORM ENTER-REMAINING-FIELDS.
     PERFORM WRITE-VENDOR-RECORD.
     PERFORM GET-NEW-VENDOR-NUMBER.
 
 ENTER-REMAINING-FIELDS.
     PERFORM ENTER-VENDOR-NAME.
     PERFORM ENTER-VENDOR-ADDRESS-1.
     PERFORM ENTER-VENDOR-ADDRESS-2.
     PERFORM ENTER-VENDOR-CITY.
     PERFORM ENTER-VENDOR-STATE.
     PERFORM ENTER-VENDOR-ZIP.
     PERFORM ENTER-VENDOR-CONTACT.
     PERFORM ENTER-VENDOR-PHONE.
 
*---------------------------------
* CHANGE
*---------------------------------
 CHANGE-MODE.
     MOVE "CHANGE" TO THE-MODE.
     PERFORM GET-VENDOR-RECORD.
     PERFORM CHANGE-RECORDS
        UNTIL VENDOR-NUMBER = ZEROES.
 
 CHANGE-RECORDS.
     PERFORM GET-FIELD-TO-CHANGE.
     PERFORM CHANGE-ONE-FIELD
         UNTIL WHICH-FIELD = ZERO.
     PERFORM GET-VENDOR-RECORD.
 
 GET-FIELD-TO-CHANGE.
     PERFORM DISPLAY-ALL-FIELDS.
     PERFORM ASK-WHICH-FIELD.
 
 ASK-WHICH-FIELD.
     DISPLAY "ENTER THE NUMBER OF THE FIELD".
     DISPLAY "TO CHANGE (1-8) OR 0 TO EXIT".
     ACCEPT WHICH-FIELD.
     IF WHICH-FIELD > 8
         DISPLAY "INVALID ENTRY".
 
 CHANGE-ONE-FIELD.
     PERFORM CHANGE-THIS-FIELD.
     PERFORM GET-FIELD-TO-CHANGE.
 
 CHANGE-THIS-FIELD.
     IF WHICH-FIELD = 1
         PERFORM ENTER-VENDOR-NAME.
     IF WHICH-FIELD = 2
         PERFORM ENTER-VENDOR-ADDRESS-1.
     IF WHICH-FIELD = 3
         PERFORM ENTER-VENDOR-ADDRESS-2.
     IF WHICH-FIELD = 4
         PERFORM ENTER-VENDOR-CITY.
     IF WHICH-FIELD = 5
         PERFORM ENTER-VENDOR-STATE.
     IF WHICH-FIELD = 6
         PERFORM ENTER-VENDOR-ZIP.
     IF WHICH-FIELD = 7
         PERFORM ENTER-VENDOR-CONTACT.
     IF WHICH-FIELD = 8
         PERFORM ENTER-VENDOR-PHONE.
 
     PERFORM REWRITE-VENDOR-RECORD.
 
*---------------------------------
* INQUIRE
*---------------------------------
 INQUIRE-MODE.
     MOVE "DISPLAY" TO THE-MODE.
     PERFORM GET-VENDOR-RECORD.
     PERFORM INQUIRE-RECORDS
        UNTIL VENDOR-NUMBER = ZEROES.
 
 INQUIRE-RECORDS.
     PERFORM DISPLAY-ALL-FIELDS.
     PERFORM GET-VENDOR-RECORD.
 
*---------------------------------
* DELETE
*---------------------------------
 DELETE-MODE.
     MOVE "DELETE" TO THE-MODE.
     PERFORM GET-VENDOR-RECORD.
     PERFORM DELETE-RECORDS
        UNTIL VENDOR-NUMBER = ZEROES.
 
 DELETE-RECORDS.
     PERFORM DISPLAY-ALL-FIELDS.
     MOVE "X" TO OK-TO-DELETE.
 
     PERFORM ASK-TO-DELETE
        UNTIL OK-TO-DELETE = "Y" OR "N".
 
     IF OK-TO-DELETE = "Y"
         PERFORM DELETE-VENDOR-RECORD.
 
     PERFORM GET-VENDOR-RECORD.
 
 ASK-TO-DELETE.
     DISPLAY "DELETE THIS RECORD (Y/N)?".
     ACCEPT OK-TO-DELETE.
     IF OK-TO-DELETE = "y"
         MOVE "Y" TO OK-TO-DELETE.
     IF OK-TO-DELETE = "n"
         MOVE "N" TO OK-TO-DELETE.
     IF OK-TO-DELETE NOT = "Y" AND
        OK-TO-DELETE NOT = "N"
         DISPLAY "YOU MUST ENTER YES OR NO".
 
*---------------------------------
* Routines shared by all modes
*---------------------------------
 INIT-VENDOR-RECORD.
     MOVE SPACE TO VENDOR-RECORD.
     MOVE ZEROES TO VENDOR-NUMBER.
 
 ENTER-VENDOR-NUMBER.
     DISPLAY " ".
     DISPLAY "ENTER VENDOR NUMBER OF THE VENDOR" .
     DISPLAY "TO " THE-MODE " (1-99999)".
     DISPLAY "ENTER 0 TO STOP ENTRY".
     ACCEPT VENDOR-NUMBER-FIELD.
*OR  ACCEPT VENDOR-NUMBER-FIELD WITH CONVERSION.
 
     MOVE VENDOR-NUMBER-FIELD TO VENDOR-NUMBER.
 
 GET-VENDOR-RECORD.
     PERFORM INIT-VENDOR-RECORD.
     PERFORM ENTER-VENDOR-NUMBER.
     MOVE "N" TO RECORD-FOUND.
     PERFORM FIND-VENDOR-RECORD
         UNTIL RECORD-FOUND = "Y" OR
               VENDOR-NUMBER = ZEROES.
 
*---------------------------------
* Routines shared Add and Change
*---------------------------------
 FIND-VENDOR-RECORD.
     PERFORM READ-VENDOR-RECORD.
     IF RECORD-FOUND = "N"
         DISPLAY "RECORD NOT FOUND"
         PERFORM ENTER-VENDOR-NUMBER.
 
 ENTER-VENDOR-NAME.
     DISPLAY "ENTER VENDOR NAME".
     ACCEPT VENDOR-NAME.
 
 ENTER-VENDOR-ADDRESS-1.
     DISPLAY "ENTER VENDOR ADDRESS-1".
     ACCEPT VENDOR-ADDRESS-1.
 
 ENTER-VENDOR-ADDRESS-2.
     DISPLAY "ENTER VENDOR ADDRESS-2".
     ACCEPT VENDOR-ADDRESS-2.
 
 ENTER-VENDOR-CITY.
     DISPLAY "ENTER VENDOR CITY".
     ACCEPT VENDOR-CITY.
 
 ENTER-VENDOR-STATE.
     DISPLAY "ENTER VENDOR STATE".
     ACCEPT VENDOR-STATE.
 
 ENTER-VENDOR-ZIP.
     DISPLAY "ENTER VENDOR ZIP".
     ACCEPT VENDOR-ZIP.
 
 ENTER-VENDOR-CONTACT.
     DISPLAY "ENTER VENDOR CONTACT".
     ACCEPT VENDOR-CONTACT.
 
 ENTER-VENDOR-PHONE.
     DISPLAY "ENTER VENDOR PHONE".
     ACCEPT VENDOR-PHONE.
 
*---------------------------------
* Routines shared by Change,
* Inquire and Delete
*---------------------------------
 DISPLAY-ALL-FIELDS.
     DISPLAY " ".
     PERFORM DISPLAY-VENDOR-NUMBER.
     PERFORM DISPLAY-VENDOR-NAME.
     PERFORM DISPLAY-VENDOR-ADDRESS-1.
     PERFORM DISPLAY-VENDOR-ADDRESS-2.
     PERFORM DISPLAY-VENDOR-CITY.
     PERFORM DISPLAY-VENDOR-STATE.
     PERFORM DISPLAY-VENDOR-ZIP.
     PERFORM DISPLAY-VENDOR-CONTACT.
     PERFORM DISPLAY-VENDOR-PHONE.
     DISPLAY " ".
 
 DISPLAY-VENDOR-NUMBER.
     DISPLAY "   VENDOR NUMBER: " VENDOR-NUMBER.
 
 DISPLAY-VENDOR-NAME.
     DISPLAY "1. VENDOR NAME: " VENDOR-NAME.
 
 DISPLAY-VENDOR-ADDRESS-1.
     DISPLAY "2. VENDOR ADDRESS-1: " VENDOR-ADDRESS-1.
 
 DISPLAY-VENDOR-ADDRESS-2.
     DISPLAY "3. VENDOR ADDRESS-2: " VENDOR-ADDRESS-2.
 
 DISPLAY-VENDOR-CITY.
     DISPLAY "4. VENDOR CITY: " VENDOR-CITY.
 
 DISPLAY-VENDOR-STATE.
     DISPLAY "5. VENDOR STATE: " VENDOR-STATE.
 
 DISPLAY-VENDOR-ZIP.
     DISPLAY "6. VENDOR ZIP: " VENDOR-ZIP.
 
 DISPLAY-VENDOR-CONTACT.
     DISPLAY "7. VENDOR CONTACT: " VENDOR-CONTACT.
 
 DISPLAY-VENDOR-PHONE.
     DISPLAY "8. VENDOR PHONE: " VENDOR-PHONE.
 
*---------------------------------
* File I-O Routines
*---------------------------------
 READ-VENDOR-RECORD.
     MOVE "Y" TO RECORD-FOUND.
     READ VENDOR-FILE RECORD
       INVALID KEY
          MOVE "N" TO RECORD-FOUND.
 
*or  READ VENDOR-FILE RECORD WITH LOCK
*      INVALID KEY
*         MOVE "N" TO RECORD-FOUND.
 
*or  READ VENDOR-FILE RECORD WITH HOLD
*      INVALID KEY
*         MOVE "N" TO RECORD-FOUND.
 
 WRITE-VENDOR-RECORD.
     WRITE VENDOR-RECORD
         INVALID KEY
         DISPLAY "RECORD ALREADY ON FILE".
 
 REWRITE-VENDOR-RECORD.
     REWRITE VENDOR-RECORD
         INVALID KEY
         DISPLAY "ERROR REWRITING VENDOR RECORD".
 
 DELETE-VENDOR-RECORD.
     DELETE VENDOR-FILE RECORD
         INVALID KEY
         DISPLAY "ERROR DELETING VENDOR RECORD".
[+][-]03/27/09 10:32 PM, ID: 24007340

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]03/28/09 03:12 AM, ID: 24007819

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zone: COBOL Programming Language
Sign Up Now!
Solution Provided By: woolmilkporc
Participating Experts: 1
Solution Grade: A
 
 
[+][-]03/28/09 06:18 AM, ID: 24008377

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]03/28/09 10:39 AM, ID: 24009398

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 30-day free trial to view this Expert Comment or ask the Experts your question.

 
 
Loading Advertisement...
20091111-EE-VQP-91 - Hierarchy / EE_QW_3_20080625