我能够(在Windows上)预编译、编译和链接一个包含嵌入式SQL的示例(Fujitsu NetCobol) COBOL测试程序。这个测试程序是读取和显示DB2 (UDB9.5在Linux上)数据库表中的行数。
在运行时,我得到以下错误消息:
JMP0811I-UPID:.工贸署:..。“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有人知道这个错误信息是什么意思吗?
发布于 2008-09-30 17:00:03
错误描述是由于:*)没有此选项的检查(链接)编译器选项(仅适用于NetCOBOL,而不是Linux),错误仍然存在,但描述性更差
实际错误是由于:*)由CALL "sqlgstrt" USING ...预编译器生成的DB2意味着错误(= COBOL)调用约定=>手动更改对CALL "sqlgstrt" WITH STDCALL LINKAGE USING...的调用已经解决了运行时错误
这个解决方案意味着修改预编译器的结果,所以我仍然在寻找一个DB2预编译器选项来生成正确的调用。
https://stackoverflow.com/questions/149945
复制相似问题