Pro*Cobol Problem 01
From: Dewald Pretorius <dewald.pretorius_at_digitec.co.za>
Date: 10 Nov 93 20:57:00 GMT
Message-ID: <2455.208.uupcb_at_digitec.co.za>
EXEC SQL END DECLARE SECTION END-EXEC.
EXEC ORACLE OPTION(ORACA=YES) END-EXEC.
EXEC SQL INCLUDE SQLCA.COB END-EXEC.
EXEC SQL INCLUDE ORACA.COB END-EXEC.
LINKAGE SECTION.
01 PARM PIC X(255). PROCEDURE DIVISION.
A0000-MAIN SECTION.
A1000-PARA.
A0000-EXIT.
EXIT. B0000-INIT SECTION.
B2000-ORACLE.
MOVE "SCOTT" TO PASS.
MOVE "TIGER" TO IDLOG.
EXEC SQL CONNECT :PASS IDENTIFIED BY :IDLOG END-EXEC.
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC. EXEC SQL WHENEVER SQLERROR GOTO I-ERROR END-EXEC. B3000-FILES.
OPEN OUTPUT PRINT-FILE.
B4000-EXIT.
EXIT. C0000-PROCESS SECTION.
C1000-DECLARE.
EXEC SQL DECLARE C1 CURSOR FOR
SELECT PRODID, STDPRICE
FROM PRICE
END-EXEC.
C2000-FETCH.
EXEC SQL OPEN C1 END-EXEC.
PERFORM C2100-FETRED UNTIL SQLCODE = +1403. C3000-EXIT.
EXIT. C2100-FETRED SECTION.
C2101-FETCHREC.
Date: 10 Nov 93 20:57:00 GMT
Message-ID: <2455.208.uupcb_at_digitec.co.za>
I have a problem with a Pro*Cobol program. First an excerpt from the program listing:
IDENTIFICATION DIVISION.
PROGRAM ID. NIBBLEPROBLEM.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. VAX-780.
OBJECT-COMPUTER. VAX-780.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
SWITCH-1 IS PAGE-SKIP.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PRINT-FILE ASSIGN "NIBBLE.OUT".
DATA DIVISION.
FILE SECTION.
FD PRINT-FILE.
01 PRINT-REC PIC X(240).
WORKING STORAGE SECTION.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 PRODID PIC S9(6) COMP-3. 01 STDPRICE PIC S9(6)V99 COMP-3. 01 NEWPRICE PIC S9(6)V999 COMP-3. 01 PASS PIC X(20). 01 IDLOG PIC X(20).
EXEC SQL END DECLARE SECTION END-EXEC.
EXEC ORACLE OPTION(ORACA=YES) END-EXEC.
EXEC SQL INCLUDE SQLCA.COB END-EXEC.
EXEC SQL INCLUDE ORACA.COB END-EXEC.
LINKAGE SECTION.
01 PARM PIC X(255). PROCEDURE DIVISION.
A0000-MAIN SECTION.
A1000-PARA.
PERFORM B0000-INIT. PERFORM C0000-PROCESS. PERFORM D0000-CLOSE.
A0000-EXIT.
EXIT. B0000-INIT SECTION.
B2000-ORACLE.
MOVE "SCOTT" TO PASS.
MOVE "TIGER" TO IDLOG.
EXEC SQL CONNECT :PASS IDENTIFIED BY :IDLOG END-EXEC.
EXEC SQL WHENEVER SQLWARNING CONTINUE END-EXEC. EXEC SQL WHENEVER SQLERROR GOTO I-ERROR END-EXEC. B3000-FILES.
OPEN OUTPUT PRINT-FILE.
B4000-EXIT.
EXIT. C0000-PROCESS SECTION.
C1000-DECLARE.
EXEC SQL DECLARE C1 CURSOR FOR
SELECT PRODID, STDPRICE
FROM PRICE
END-EXEC.
C2000-FETCH.
EXEC SQL OPEN C1 END-EXEC.
PERFORM C2100-FETRED UNTIL SQLCODE = +1403. C3000-EXIT.
EXIT. C2100-FETRED SECTION.
C2101-FETCHREC.
************************************************** REFERENCE LINE 1INITIALIZE PRODID STDPRICE.
- REFERENCE LINE 2
EXEC SQL FETCH C1 INTO :PRODID, :STDPRICE
END-EXEC.
C2102-CALC. INITIALIZE NEWPRICE. EXEC SQL EXECUTE BEGIN IF :PRODID < 100890 THEN
:NEWPRICE := :STDPRICE * 1.1;
ELSE
:NEWPRICE := :STDPRICE * 1.5;
END IF; .. Continued in the next message...
- Digitec Online - 10 Nodes - Johannesburg - South Africa - +27-11-476-7136 -
- _at_digitec.co.za - ILink - Weather - BASNet - RsaNet - Fidonet -