0

Pro*COBOL在进行少量更改后一直在尝试编译现有程序syntax,已验证Non-Printable character可能会导致编译问题。

但最后,Pro*COBOL由于.(dot)出现在 ( ) 的 CALL 下SQLBEXembedded SQL失败的编译Line Number 18106 under the listing

有关更多详细信息,请参见下面的代码,代码片段取自 Pro*COBOL 代码和编译期间生成的列表。

对于SQLBEX正在调用的其他实例,.(dot)不会出现。非常感谢任何帮助。

清单下的代码:

 18085     IF SQLCODE IN SQLCA =   WS-DEADLOCK-WAIT-FOR-RESRC           26825000
 18086        SET DEADLOCK TO TRUE                                      26826000
 18087
 18088*       EXEC SQL                                                  26827000
 18089*           COMMIT                                                26828000
 18090*       END-EXEC
 18091     MOVE 1 TO SQL-ITERS
 18092     MOVE 2914 TO SQL-OFFSET

* Micro Focus COBOL for UNIX         V4.0 revision 004 18-Jan-17 07:31 Page 313
*                      cmcomc23.cob
 18093     MOVE 0 TO SQL-OCCURS
 18094     CALL "SQLADR" USING
 18095         SQLCUD
 18096         SQL-CUD
 18097     CALL "SQLADR" USING
 18098         SQLCA
 18099         SQL-SQLEST
 18100     MOVE 256 TO SQL-SQLETY
 18101
 18102     CALL "SQLBEX" USING
 18103         SQLCTX
 18104         SQLEXD
 18105         SQLFPN
 18106         .
 18107                                                                  26829000
 18108        DISPLAY 'DEAD LOCK OCCURED '                              26829100
 18109        GO TO 9000-EXIT                                           26829200
 18110     ELSE                                                         26829300
* 562-S****************************************************************( 308)**
**    An "ELSE" phrase did not have a matching IF and was discarded.
 18111        SET NO-DEADLOCK TO TRUE                                   26829400
 18112     END-IF.                                                      26829500
* 564-S**********                                                      ( 313)**
**    A scope-delimiter did not have a matching verb and was discarded.

程序下的原始代码:

268210******************************************************************26821000
268221 9000-SQL-ERROR      SECTION.                                     26822100
268230******************************************************************26823000
268250     EXEC SQL                                                     26824000
268250        WHENEVER SQLERROR CONTINUE                                26824000
268250     END-EXEC.                                                    26824000
268240                                                                  26824000
268250     IF SQLCODE IN SQLCA =   WS-DEADLOCK-WAIT-FOR-RESRC           26825000
268260        SET DEADLOCK TO TRUE                                      26826000
268270        EXEC SQL                                                  26827000
268280            COMMIT                                                26828000
268290        END-EXEC                                                  26829000
268291        DISPLAY 'DEAD LOCK OCCURED '                              26829100
268292        GO TO 9000-EXIT                                           26829200
268293     ELSE                                                         26829300
268294        SET NO-DEADLOCK TO TRUE                                   26829400
268295     END-IF.                                                      26829500
268296                                                                  26829600
268297     MOVE 'E'        TO WS-ERR-SEVERITY-CD.                       26829700
4

0 回答 0