3

首先:我的代码的最大部分是在几周前工作的。同时,我们已经从 MySQL 服务器切换到 SQL 服务器,并且我们对架构设计进行了一些更改。

我使用 Percobol,据我所知,它利用了 OpenCobol 编译器。

PERFORM 2010-GEBRUIKER-INSERT
PERFORM 2020-GEBRUIKER-JOINTABLE

2010-GEBRUIKER-INSERT.
MOVE "GEBRUIKER" TO GEBR_TYPE
EXEC SQL INSERT INTO Gebruikers
   VALUES ( TRIM( :LOGIN ), TRIM( :ACHTERNAAM ),
            TRIM( :EMAIL ), TRIM( :PROJECTCODE ),
            TRIM( :GEBR_TYPE ), TRIM( :VOORNAAM ),
            SHA1( TRIM( :WACHTWOORD ) ) )   
END-EXEC
.

2020-GEBRUIKER-JOINTABLE.
EXEC SQL INSERT INTO LeertrajectenGebruikersJoin
   VALUES (TRIM( :PROJECTCODE ), TRIM( :LOGIN))
END-EXEC
.

而这些表的数据库设计如下所示:

架构设计

当我在INSERT语句之前显示值时2010,一切都正确显示。当我尝试在 之后显示它们时INSERT,它们不会显示。

抛出的错误(在我的记录器中被捕获)告诉我 errorcode 00q。我一直在做一些搜索,但似乎无法找到它的含义。更重要的是,据我所见,以00should 开头的代码表明一切正常。

使用的字段是这样声明的,并从 CSV 文件中填充:

01 WS-INPUT.
        05 ACHTERNAAM PIC X(25) VALUE SPACES.
        05 VOORNAAM PIC X(15) VALUE SPACES.
        05 EMAIL PIC X(50) VALUE SPACES.
        05 LOGIN PIC X(15) VALUE SPACES.
        05 WACHTWOORD PIC X(11) VALUE SPACES.
        05 GEBR_TYPE PIC X(20) VALUE SPACES.
        05 PROJECTCODE PIC X(10) VALUE SPACES.

我忽略了什么可能会返回此错误?同样重要的是:当我更改我的 JDBC 字符串或输入文件字符串时,我的记录器会通知我连接错误。因此,我假设连接和数据读取都按预期工作。

4

1 回答 1

2

好的,因为这是你所做的,根据另一个问题,这里是从评论到回答:-)

定义一个 PIC -(4)9 字段。将您的 sql 错误代码移至该位置,然后打印/显示该代码。我想你会发现 q 是一个负数,你可以在你的 sql 文档中跟踪它。

于 2013-04-18T16:31:21.203 回答