Sql server 将数据插入SQL Server返回错误代码00q

Sql server 将数据插入SQL Server返回错误代码00q,sql-server,cobol,sql-insert,Sql Server,Cobol,Sql Insert,首先:几周前,我的代码中最大的部分还在工作。同时,我们已经从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 VAL

首先:几周前,我的代码中最大的部分还在工作。同时,我们已经从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
.
而这些表的数据库设计如下所示:

当我在
2010
中显示
INSERT
语句之前的值时,所有内容都正确显示。当我尝试在插入
后显示它们时,它们不会显示

抛出的错误(在我的记录器中被捕获)告诉我错误代码
00q
。我一直在搜索,但似乎找不到它的意思。更重要的是,据我所知,以
00开头的代码应该表明一切正常

使用的字段声明如下,并从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字符串或inputfile字符串时,记录器会通知我连接有故障。因此,我假设连接和数据读取都按预期工作。

好的,因为这是您所做的,根据另一个问题,这里是从注释到答案:-)


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

定义一个PIC-(4)9字段。将sql错误代码移到该位置,然后打印/显示该位置。我想您会发现q是一个负数,希望您可以在sql文档中跟踪它。00q是-1,在OpenCOBOL分区十进制(以及许多其他Ascii Cobol)中,搜索错误代码-1。正如比尔所说的,你应该把它移到一个--9的图片区域。好的,今天晚些时候我会看看这个,看看它能给我带来什么。干杯您还说WS-INPUT是一个“CSV文件”。它可能来自CSV,但这不能直接表示CSV,因为所有字段的长度都是固定的,并且每个字段之间没有分隔符。