男生女生之间的不同:COBOL POINT

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 15:07:39
编译-就是将源程序翻译为机器代码,机器代码一般以
*.obj文件保存。
链接-就是将上一步产生的obj文件与操作系统动态库组合
为可执行的exe文件。
COMPILE LIKE-EDIT
//COBOL EXEC PGM=IGYCRCTL
//STEPLIB DD DSN=IGY330.SIGYCOMP,DISP=SHR                            -> COMPILER
//SYSLIB   DD DSN=SYS1.MACLIB,DISP=SHR
//         DD DSN=SYS1.MODGEN,DISP=SHR
//         DD DSN=SYS1.CEE.SCEEMAC,DISP=SHR
//         DD DSN=©LIB,DISP=SHR     ->copy book
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSUT2 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSUT3 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSUT4 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSUT5 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSUT6 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSUT7 DD UNIT=3390,SPACE=(TRK,(1,1))
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),                           -> Compile out put  obj file
//          UNIT=3390,SPACE=(TRK,(1,1)),DCB=(LRECL=80,BLKSIZE=2300)
//SYSIN DD DSN=LUOBIC.TEST.COBOL(MAINPRO),DISP=SHR          -> source program
//*****************************//
//*STEP2:LINK-EDITE LOADMODULES      //
//*****************************//
//LKED  EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K
//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
//       DD DSN=LUOBIC.TEST.LOAD,DISP=SHR                 -> where subprobram exist
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)                 ->link-edit  input  from compiling
//      DD DDNAME=SYSIN
//SYSLMOD DD DSN=LUOBIC.TEST.LOAD(MAINPRO),DISP=SHR          ->link edit output .exe file
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(1,1))
Run:
//LUOBICA JOB NOTIFY=LUOBIC
//*****************************
//*  STEP3: RUN               *
//*****************************
//GO EXEC PGM=MAINPRO,
//          REGION=1024K
//STEPLIB DD DSN=CEE.SCEERUN,DISP=SHR
//        DD DSN=LUOBIC.TEST.LOAD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//CEEDUMP  DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
1.Cobol-PERFORM UNTIL  END-PERFORM
PERFORM  UNTIL  CONDITION
END-PERFORM
MOVE 1 TO I
PERFORM 00010-PROCESS THRU 00010-EXIT UNTIL I >  3
Concusion:agnose condition first and the excute loop.
PERFORM   WITH TEST BEFORE/AFETR UTIL CONDITION
END PERFORM
Note  a. defaut is withe test before
b. check condition before or after first time execute
2.date /time
2.1 get current date from DB2Format
EXEC SQL
SET :WS-CURRENT-DATE = DATE(DAYS(CURRENT_DATE))   yyyy-mm-dd
END-EXEC
SELECT  CURRENT TIME FROM SYSIBM.SYSDUMMY1 INTO :VARHH:MM:SS(15:48:45)
2.2 get current date from cobol
ACCEPT VARIABLE  FROM DATEyymmdd
ACCEPT VARIABLE FROM DATE YYYYMMDD.YYYYMMDD
ACCEPT VARIABLE  FROM TIMEHHMMSSss(ss is hundredths of the second)
2.3 get timestamp from DB22011-04-14 18:17:12.810517
EXEC SQL                                               EXEC SQL                                               SAME
SELECT  CURRENT_TIMESTAMP  INTO :VARSELECT  CURRENT TIMESTAMP  INTO :VAR
from  SYSIBM.SYSDUMMY1from  SYSIBM.SYSDUMMY1
END-EXEC                                               END-EXEC
2.4.INSERT CURRENT DATE TO DB2
EXEC SQL
INSERT INTO TABLE
:VAR,
CURRENT_DATEcan't be CURRENT DATE
END-EXEC
3.movot char to position
MOVE  '*****     END  OF  REPORT     *****'
TO PRT-REC1 (50:35)
4.change page Sample
01  WS-MAX-LINE  pic s9(3) comp -3 value +56.SERS.MSI.RABIL.SRC.COBOL(ELTEST06)
01  WS-LINE-CTR    pic s9(3) comp -3 value +60.
00000-MAIN.
Loop - read data file until eof(just a snario)
IF WS-LINE-CTR >= WS-MAX-LINE
WRITE RPT-REC FROM RPT-HEADER1
WRITE RPT-REC FROM RPT-HEADER2
MOVE 2 TO WS-LINE-CTR
END-IF
WRITE RPT-REC FROM RPT-DETAIL
ADD +1 TO WS-LINE-CTR
end-loop
5 .pass data to cobol from jcl
1. accept from sysin
accept variable
2. via parm when execute pgm
JCL- EXEC PGM=SRCNAME ,PARM='STRING'
cobol-
linkage section.
01 parm-buffer.
05 parm-length pic s9(04).
05 parm-data pic x(20).
Procedure division using parm-buffer.if need pass servel parmeters, then can put
together as one to pass. Then divided in the
program.
6.main program & sub program.
main program
DATA DIVISION
WORKING-STORAGEN SECTION.
01 X
01 Y
01 Z
PROCEDURE DIVISION.
call subprogram using x,y,z
SUBPROGRAM
DATA DIVISION.
LINKAGE-SECTION.
01 a pic
01 B pic
01 C pic
PROCEDURE DIVISION.
7.continuation Diffence
hypen - in line 7
7.1
DISPLAY 'ELBGBCRG - INSERT SUCCESSFUL.   continue -contains  blanks between column 72
-            'PLEASE CHECK REPORT LOG.'
7.2
DISPLAY 'ELBGBCRG - INSERT SUCCESSFUL.'    continue - don't  contains  blanks
-            'PLEASE CHECK REPORT LOG.'
8. covert a Alpha to num
8.1   function UNCTION NUMVAL
01 WS-MAX-AO-NO PIC  X(5)
01 WS-AO-NO           PIC 9(5)
COMPUTE WS-AO-NO = FUNCTION NUMVAL(WS-MAX-AO-NO) + 1
8.2 using table to do
9.  a string contains single quote- using 2 single quoutes
KEY ''A'' OR ''B''. PRESS CLEAR TO EXIT.'-   using 2  single quotes
10. Static and Dynamic call
how to specifylinkedit
Static-  call  literal, and program is link-edited with cobol NODYNAMmuste be like-edited  with caller
Dynamic1.call variable regardless DYNAM/NO DYNAM   option
2.call literal, + like-edit(parm DYNAM)separate loaded modules, can be share by multiple  callsers.
11. DCLGEN
DECIMAL(9,2) ->  05 FLDNAME  PIC   S9(7)V9(2).
12.CONTINUE  & NEXT SENTENCE
CONTINUE->  TO NEXT STATEMENT
NEXT SENTENCE->  TO EXECUTE THE STATEMENT AFER A  periord '.'
13. OPEN Modle PSKSDSESDS
OPEN INPUT
OPEN OUTPUT   REPLACE EXIST REOCRDS IF FILE EXISTREPLACE EXIST REOCRDS IF FILE EXISTREPLACE EXIST REOCRDS IF FILE  EXIST
OPEN I-O    REWRITE(UPDATE RECORD)ADD NEW RECORD/REWRITE(UPDATE RECORD)REWRITE (UPDATE REOCRD),CAN'T use it add new rec
OPEN EXTEND  ADD NEW RECORD AT END OF FILE Don't  use it         Add new record at end
14. ESDS   SELECT STATEMENT
FILE-CONTROL.
SELECT EMP-FILE ASSIGN TO AS-EMPFIL        the file name [ASSIGN TO] must prefix with 'AS-'
ORGANIZATION   IS SEQUENTIAL
ACCESS MODE    IS SEQUENTIAL
FILE STATUS    IS WS-EMPFIL-STATUS.
in JCL CODE LIKE below:
//EMPFILE     DD DSN=FILENAME,DISP=SHR
15. USAGE  - DATA YTPE
A. USAGE IS DISPLAY(外部十进制)
B. COMP  - 二进制
C. COMP-1  -  单精度浮点
D.  COMP-2  - 双精度浮点
E. COMP-3   - 缩合十进制
value           usage display                       comp-3
+12                  F1F2 (OR F1C2)                 |01|2F|
-12                  F1D2                                 |01|2D|
16. Initialize
X- spaces   A-spaces 9- 0
17. REPLACE
REPLACE ==MDSBFLOG:==   BY ==MDSBFLOG-==.   /*replace string 'MDSBFLOG:' with 'MDSBFLOG-'
COPY MDSBFLOG.
REPLACE OFF.