COBOL 开发笔记

SEARCH 关键字

01  WK-DATA-SAMPLE.                                          
    05  WK-DATA1                  PIC X(04) VALUE "AAAA".    
    05  WK-DATA2                  PIC X(04) VALUE "BBBB".    
    05  WK-DATA3                  PIC X(04) VALUE "CCCC".    
    05  WK-DATA4                  PIC X(04) VALUE "DDDD".    
01  WK-DATA-SAMPLE-R REDEFINES WK-DATA-SAMPLE.               
    05  WK-TABLE OCCURS 4 TIMES INDEXED BY WK-IDX.           
        10  WK-NODE1              PIC X(02).                 
        10  WK-NODE2              PIC X(02).                 
01  WK-SEARCH-RESULT    PIC X(01).                 
    88  WK-FOUND                  VALUE "Y".                 
    88  WK-NOT-FOUND          VALUE "N".                 

                            
SET WK-IDX           TO 1.                              
SEARCH WK-TABLE                                         
    AT END SET WK-NOT-FOUND TO TRUE                 
    WHEN WK-NODE1(WK-IDX)     = "AA"                    
        SET WK-FOUND TO TRUE                            
    WHEN WK-NODE2(WK-IDX)     = "AA"                    
        SET WK-FOUND TO TRUE                            
END-SEARCH.                                                    

SQLCBL CURSOR

EXEC SQL                                                 
    DECLARE POLLIST CURSOR FOR                           
    SELECT                                               
    FIELD1,                                                
    FIELD2..                                             
    FROM TABLE1                                          
    WHERE ..         
END-EXEC.                                                
                                                         
EXEC SQL                                                 
    OPEN POLLIST                                         
END-EXEC.                                                

 PERFORM UNTIL SQLSTATE        NOT = ZEROS                        
    EXEC SQL                                                     
        FETCH POLLIST INTO                                       
        :WK-FIELD1,                                                
        :WK-FIELD12..                                           
    END-EXEC                                                     
                                                                 
    IF SQLSTATE               = ZEROS                            
        Statement to process WK-FIELD1..                     
    END-IF                                                       
END-PERFORM.                                                     
                                                                 
EXEC SQL                                                         
    CLOSE POLLIST                                                
END-EXEC.        

ACCEPT 关键字

一般格式:ACCEPT    标识符   [FROM 助忆名]
ACCEPT后只能有一个标识符,标识符可以是组合项。
FROM 助忆名:指定环境中特定的设备,助忆名需要在环境部中定义。
CONFIGRATION    SECTION.
    SPECIAL-NAMES.
        CONSOLE    IS    ABC.
ACCEPT    T    FROM    ABC.//则表示要从控制台接收数据

ACCEPT TEST-DATE FROM DATE.            //系统当前日期(YYMMDD)
ACCEPT TEST-DATE FROM DATE-YYYYMMDD.   //系统当前日期(YYYYMMDD)
ACCEPT TEST-DATE FROM DAY.             //一年中第几天(YYDDD)
ACCEPT TEST-DATE FROM DAY-OF-WEEK.     //当天是星期几(W)
ACCEPT TEST-DATE FROM TIME.            //系统当前时间(HHMMSS99)
                        
原文链接:https://blog.csdn.net/weixin_42472027/article/details/118752790

COBOL中执行CL命令

01  WK-QCMDEXC-PARA.                                              
   05  WK-QCMDEXC-CMD          PIC X(3000).                       
   05  WK-QCMDEXC-LEN          PIC 9(10)V9(05) COMP-3 VALUE 3000. 
   
MOVE "OVRDSPF FILE(SSNAKE    ) WAITRCD(1)" TO WK-QCMDEXC-CMD.                              CALL "QCMDEXC" USING     WK-QCMDEXC-CMD    WK-QCMDEXC-LEN.  

DSPF 变量类型

P  -- Packed Decimal DECIMAL
S  -- Zoned Decimal NUMERIC   
B  -- Binary 
F  -- Floating Point     
A  -- Character
L  -- Date    
T  -- Time         
Z  -- Time stamp    
H  -- Hexadecimal    
J  -- DBCS-Only  
E  -- DBCS-Either     
O  -- DBCS-Open      
G  -- DBCS-Graphic 
5  -- Binary Character    
Y  -- Numeric          

COBOL 变量类型 

当PF中的数字类型定义 13P 2,如果使用COPY DD-R001,COBOL中对应的数字类型定义为 PIC S9(11)V9(2)  COMP-3.         

PIC Z(8)9.99 是一种字符类型,不可以用于计算

Definition of COBOL linkage section 
01 LINK-TSCASENUM                 PIC S9(04) COMP-3.       

Variable  . . . . . . . . . . . . . . . : 01  LINK-TSCASENUM     
  Type  . . . . . . . . . . . . . . . . :   PACKED               
  Length  . . . . . . . . . . . . . . . :   4 0                  
 'F0F0F0'                                                        
CPD1901  Variable contains invalid decimal data.                 

Definition of PF
TSCASENUM      4S 0      

Variable  . . . . . . . . . . . . . . . : 06  TSCASENUM                   
  Type  . . . . . . . . . . . . . . . . :   ZONED                         
  Length  . . . . . . . . . . . . . . . :   4 0                           
 '40404040'                                                               
CPD1901  Variable contains invalid decimal data.   

Variable  . . . . . . . . . . . . . . . : 06  TSCASENUM        
  Type  . . . . . . . . . . . . . . . . :   ZONED              
  Length  . . . . . . . . . . . . . . . :   4 0                
 '    1'                                                       
 

Dicimal data error occur when move TSCASENUM to LINK-TSCASENUM

Could update the definition of COBOL linkage section to fix the error
01 LINK-TSCASENUM                 PIC 9(04).   

Variable  . . . . . . . . . . . . . . . : 01  LINK-TSCASENUM       
  Type  . . . . . . . . . . . . . . . . :   ZONED                  
  Length  . . . . . . . . . . . . . . . :   4 0                    
 '    1'                                          

                            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值