INSERT Mysql Micro Focus Cobol ошибка 1064, если используются переменные хоста - PullRequest
1 голос
/ 07 октября 2019

Получение ошибки -1064 при вставке в таблицу с помощью переменных хоста. Работает поиск, если вместо переменных хоста используются жестко закодированные значения.

Пробовал тот же SQL-оператор, используя жестко закодированные значения, а также переменные хоста. Изменены предложения изображений, использовались переменные индикатора и т. Д. Для переменных хоста, но ничего не работает.

Объявлены переменные хоста:

   EXEC SQL BEGIN DECLARE SECTION END-EXEC.
   01 hfname  pic x(45).
   01 hlname  pic x(45).
   01 hdeptid pic S9(09) comp-4.
       EXEC SQL END DECLARE SECTION END-EXEC.

Ниже приведен фрагмент кода:

       EXEC SQL
           INSERT INTO employee (Fname, Lname, DeptId)
           VALUES ("abc", "def", 005)
       END-EXEC
       if sqlcode not = 0
           display sqlcode
           display sqlerrmc
           stop run
       end-if.

Приведенный выше кодработает отлично. Тот же код с переменными вместо жестко закодированных значений, как показано ниже, приводит к упомянутой ошибке:

       EXEC SQL
           INSERT INTO employee (Fname, Lname, DeptId)
           VALUES (:hfname, :hlname, :hdeptid)
       END-EXEC

       if sqlcode not = 0
           display sqlcode
           display sqlerrmc
           stop run
       end-if.

Невозможно выяснить, почему использование переменных хоста не работает. Я пытался изменить длину поля и т. Д., Но ничего не работает. использовал простой рис 9 (4) вместо s9 (09) comp, но не работает. Погуглил совсем немного, но не так много дискуссий о mysql cobol. Спасибо за любую помощь, вы можете предоставить.

...