SPICE <Restart> - Read Record from Input File

本文介绍在SPICE-SpanIntegratedCheckpoint/RestartEnvironment中使用SQL声明游标并从数据库读取不同类型的记录,包括简单变量、结构体及包含VARCHAR的结构体。通过具体的COBOL代码示例,展示了如何打开游标、获取数据到变量中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SPICE - Span Integrated Checkpoint/Restart Environment

1.Simple Variable

01 SPICE-SAM PIC X(18) VALUE '!SPICE!_SAM'.
01 INDDA-DD PIC X(18) VALUE '!DDNAME!=INDDA'.
01 VAR-A PIC X(128).

        EXEC SQL 
                INCLUDE SPIRINCC 
        END-EXEC.

        EXEC SQL 
                DECLARE INDDA_CURSOR CURSOR FOR
                        SELECT CHAR_1
                        FROM SPICE_SAM
                        WHERE CATEGORY=:SPICE-SAM AND FILE=:INDDA-DD
        END-EXEC.


     EXEC SQL
          OPEN INDDA_CURSOR
     END-EXEC.


01 VAR-A PIC X(128).

     EXEC SQL
          FETCH INDDA_CURSOR
          INTO :VAR-A
     END-EXEC.

----------------------------------------------------------------------------------------------------------------------------------------

2. Structure
01 SPICE-SAM PIC X(18) VALUE '!SPICE!_SAM'.
01 INDDB-DD PIC X(18) VALUE '!DDNAME!=INDDB'.
01 INDDB-RECLEN PIC X(18) VALUE '!RECLEN!=124'.
01 STRUCT-B.
     02 NAME PIC X(32).
     02 AGE PIC S9(4) COMP.
     02 ADDRESS.
          49 ADDRESSL PIC S9(4) COMP.
          49 ADDRESSC PIC X(64).
     02 PHONE-NO PIC X(24).

     EXEC SQL
          INCLUDE SPIRINCC
     END-EXEC.

     EXEC SQL
          DECLARE INDDB_CURSOR CURSOR FOR
          SELECT CHAR_1,INT_1,VARCHAR_1,CHAR_2
          FROM SPICE_SAM
          WHERE CATEGORY=:SPICE-SAM AND FILE=:INDDB-DD
          AND RECLEN = :INDDB-RECLEN
     END-EXEC.


     EXEC SQL
          OPEN INDDB_CURSOR
     END-EXEC.


01 STRUCT-B.
     02 NAME PIC X(32).
     02 AGE PIC S9(4) COMP.
     02 ADDRESS.
          49 ADDRESSL PIC S9(4) COMP.
          49 ADDRESSC PIC X(64).
     02 PHONE-NO PIC X(24).

     EXEC SQL
          FETCH INDDB_CURSOR
          INTO :STRUCT-B
     END-EXEC.


----------------------------------------------------------------------------------------------------------------------------------------
3. VARCHAR Structure

01 SPICE-SAM PIC X(18) VALUE '!SPICE!_SAM'.
01 INDDC-DD PIC X(18) VALUE '!DDNAME!=INDDC'.
01 STRUCT-C.
     49 L PIC S9(4) COMP.
     49 D PIC X(64).

     EXEC SQL
          INCLUDE SPIRINCC
     END-EXEC.

     EXEC SQL
          DECLARE INDDC_CURSOR CURSOR FOR
          SELECT VARCHAR_1
          FROM SPICE_SAM
          WHERE CATEGORY=:SPICE-SAM AND FILE=:INDDC-DD
     END-EXEC.


     EXEC SQL
          OPEN INDDC_CURSOR
     END-EXEC.


01 STRUCT-C.
     49 L PIC S9(4) COMP.
     49 D PIC X(64).

     EXEC SQL
          FETCH INDDC_CURSOR
          INTO :STRUCT-C
     END-EXEC.


Note:
The host structure or set of host variables must collate into a single continuous area of storage. Host structures in COBOL programs should not contain any variables named FILLER, as the DB2 precompiler will omit them from the list of data items passed to SPICE SQL.

If this statement is the first reference to the file since a restart, SPICE will restart the file. It will re-position it to its position at the time of the last successful commit point.

If all the records in the file have been read, an SQLCODE of +100 is returned.

If SPICE is unable to read a record an SQLCODE of -681 is returned.

C1 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C1 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C1 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C2 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C2 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C2 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C3 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C3 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C3 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C4 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C4 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C4 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C5 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C5 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C5 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C6 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C6 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C6 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C7 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C7 Error: Part type must be entered in READ ONLY field 1: type=<part type>(<spice prefix>) C7 Error: Netlist data must be entered in READ ONLY field 5: netlist=<netlist data> C8 Error: Pin order data (PINS=1:[<pins>]) not in READ ONLY field 4. Pins sorted by pin-name. C8 Error: Part type mus
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值