JMP0811I-U使用DB2 SQL编译Fujitsu COBOL后,Fujitsu运行时错误:原因/补救措施?
时间:2020-03-06 14:53:18 来源:igfitidea点击:
我能够(在Windows XP上)预编译,编译和链接包含嵌入式SQL的示例(Fujitsu NetCobol)COBOL测试程序。该测试程序用于读取和显示DB2(在Linux上为UDB 9.5)数据库表中的行数。
在运行时,我收到以下错误消息:
JMP0811I-U [PID:... TID:...]" sqlgstrt"程序的链接规则或者参数失败。 PGM = DB2TST1
该错误所指的预编译源代码如下所示:
* ... in WORKING-STORAGE section: 01 SQLA-PROGRAM-ID. 05 SQL-PART1 pic 9(4) COMP-5 value 172. 05 SQL-PART2 pic X(6) value "AEAMAI". 05 SQL-PART3 pic X(24) value "gBSdTdJY01111 2 ". 05 SQL-PART4 pic 9(4) COMP-5 value 13. 05 SQL-PART5 pic X(13) value "ADMINISTRATOR". 05 SQL-PART6 pic X(115) value LOW-VALUES. 05 SQL-PART7 pic 9(4) COMP-5 value 8. 05 SQL-PART8 pic X(8) value "COBOL/DB". 05 SQL-PART9 pic X(120) value LOW-VALUES. * .. in PROCEDURE DIVISION: *EXEC SQL CONNECT TO :DB-SERVER USER :DB-USER USING :DB-PWD * END-EXEC CALL "sqlgstrt" USING BY CONTENT SQLA-PROGRAM-ID BY VALUE 0 BY REFERENCE SQLCA
有人知道此错误消息的含义吗?
解决方案
错误描述是由于:
*)CHECK(LINKAGE)编译器选项
(仅适用于Windows的NetCOBOL,不适用于Linux)
没有此选项,错误仍然存在,但描述性更差
实际错误是由于:
*)DB2预编译器生成的CALL" sqlgstrt" USING ...
表示错误
(= COBOL)调用约定=>手动将调用更改为
使用STDCALL链接使用CALL" sqlgstrt"解决了运行时错误
该解决方案意味着尽管更改了预编译器的结果,所以我仍在寻找DB2预编译器选项以生成正确的CALL。