将COBOL连接到数据库

问题描述

我正在尝试使用嵌入式sql处理器连接到COBOL中的数据库。问题是我不知道如何建立连接。 CONNECT语句的文档说使用datasource | servername,但实际上是什么?我尝试使用CONNECT WITH PROMPT,它会打开一个配置屏幕,但无法使其正常工作。如何使用此sql嵌入式处理器建立连接?

我正在使用MicroFocus NetExpress编译器5.1.6.14版本。

我正在使用的代码

$set sql

working-storage section.
exec sql
    include sqlca
end-exec.
01 sqlCA.
    05  sqlCAID         PIC X(8)         VALUE "sqlCA   ".
    05  sqlCABC         PIC S9(9) COMP-5 VALUE 136.
    05  sqlCODE         PIC S9(9) COMP-5 VALUE 0.
    05  sqlERRM.
        49  sqlERrml    PIC S9(4) COMP-5.
        49  sqlERRMC    PIC X(70).
    05  sqlERRP         PIC X(8).
    05  sqlERRD         PIC S9(9) COMP-5 OCCURS 6 VALUE 0.
    05  sqlWARN.
        10  sqlWARN0    PIC X.
        10  sqlWARN1    PIC X.
        10  sqlWARN2    PIC X.
        10  sqlWARN3    PIC X.
        10  sqlWARN4    PIC X.
        10  sqlWARN5    PIC X.
        10  sqlWARN6    PIC X.
        10  sqlWARN7    PIC X.
        10  sqlWARN8    PIC X.
        10  sqlWARN9    PIC X.
        10  sqlWARN10   PIC X.
        10  sqlWARNA    redefineS sqlWARN10 PIC X .
    05  sqlSTATE    PIC X(5).

procedure division.

exec sql
     connect to ':ws-base-src' as banco user 'sa.'
end-exec

display sqlCODE

我总是得到返回码:19703。来自this documentation。它说它无法建立连接。

sqlERRM变量具有此信息; Data source name not found and no default driver specified

对于CONNECT语句的用法,我关注的是this documentation.

解决方法

正如@James Anderson所说,这是一个连接配置问题。必须对Microsoft SQL Server和OCDB连接上的访问进行一些配置。