1

我有一个地图,它有两个数据类型为 X(6),9(8) 的输入字段,我将这两个值存储在我的 cobol-cics 程序的以下变量中。

01 SCREEN-DATA.        
05 ACTNUM PIC X(6). 
05 AMOUNT PIC 9(8). 

现在我将这两个值传递给 cobol-db2 程序:

CALL UPDATEPROG USING ACTNUM,AMOUNT.

在我的更新程序中:

LINKAGE SECTION.                                                 
01 DEPOSITPARAMS.                                                
05 ACTNUM PIC X(6).                                           
05 AMOUNT PIC 9(8).                                           
PROCEDURE DIVISION USING DEPOSITPARAMS.                          
MOVE ACTNUM TO ACCOUNT-NUMBER.

其中 ACCOUNT-NUMBER 是我创建的表的主变量。运行程序很好,但是在我的地图中,当我输入详细信息并按下回车键时,我得到了异常终止。当我给出一些静态值时,例如:将 071250 移至帐户号。它工作正常,我能够更新,使用查询从表中检索值。这可能是什么原因导致异常结束。请帮我解决这个问题

这些是我在 DCLGEN 中创建的主变量

01  DCLACCOUNT-MASTER.                            
10 ACCOUNT-NUMBER       PIC X(6).                   
10 ACCOUNT-HOLDER       PIC X(20).                  
10 ACCOUNT-BALANCE      PIC S9(8)V9(2) USAGE COMP-3.
10 LAST-UPDT-DATE       PIC X(10).                  
10 OPENNING-DATE        PIC X(10).     

我所做的另一个观察是,无论我在哪里使用 ACTNUM 变量,即链接部分变量。我正在异常结束

4

3 回答 3

4

我猜你的意思是异常终止代码的ASRA

查看核心转储,如果您使用TEST选项编译,您应该有一个格式化转储,显示您的工作存储、本地存储和链接部分变量及其值。我怀疑您的 AMOUNT 字段中有非数字值。

在 CICS 中,核心转储写入 CESE 瞬态数据队列,通常由 CICS 系统程序员映射到 CICS 区域的 CEEMSG DD。在 CEE3845 上进行查找以查找核心转储的顶部,这是语言环境消息的消息 ID,其中包含对出现问题并导致异常结束的详细描述。

于 2012-04-21T12:47:57.587 回答
1

验证您阅读地图的区域的 COBOL 定义是否与地图返回的区域实际匹配。我建议运行 CEDF 并仔细查看 READ MAP 在调用返回时填充的区域。我怀疑你会发现不匹配。

于 2012-04-22T03:50:17.260 回答
0

在您的代码中,添加以下内容:

链接部分。
01 存款参数。
05 LINKAGE-REF S9(4) COMP-3。

05 ACTNUM PIC X(6)。
05 数量 PIC 9(8)。

于 2016-03-28T16:58:29.040 回答