Как передать пользовательский ввод в программу COBOL и сохранить его в таблице SQL?

0

Как я могу создать программу COBOL со встроенным SQL, которая принимает вход пользователя и использует SQL для INSERT в таблицу. Я знаю, как вставить с помощью SQL, но я не знаю, как передать вход COBOL ACCEPT в таблицу SQL

        EXEC SQL DECLARE A05544 TABLE                     
        ( CUST_ID                        CHAR(6) NOT NULL,
          PROD                           CHAR(6) NOT NULL,
          PRIC                           CHAR(6) NOT NULL 
        ) END-EXEC.
    01  DCLA05544.                       
        10 CUST_ID              PIC X(6).
        10 PROD                 PIC X(6).
        10 PRIC                 PIC X(6).                                       

Выше приведено объявление встроенной таблицы SQL для таблицы, которую я хочу вставить в

    WELCOME.
        DISPLAY 'INPUT CUSTOMER ID'

Так начинается программа

Ive попытался вставить этот путь

EXEC SQL            
    INSERT INTO A05544
    (CUST_ID)         
    VALUES(CID_ADD)   
END-EXEC

но я получаю ошибку DSNHANAL LINE 225 COL 14 ЗАЯВЛЕНИЕ ССЫЛКИ COLUMN 'A05544''CID_ADD', КОТОРЫЙ НЕ ОБНАРУЖЕН В УКАЗАННОЙ ТАБЛИЦЕ (S)

Теги:
cobol

1 ответ

2

Нет ссылки на CID_ADD в любой части COBOL, не так ли? Похоже, что это переменная, которую вы ACCEPT заранее, в этом случае используйте : чтобы сообщить прекомпилеру о ваших намерениях:

EXEC SQL            
    INSERT INTO A05544
    (CUST_ID)         
    VALUES(:CID_ADD)   
END-EXEC
  • 0
    Да, я ранее ПРИНЯЛ CID_ADD. Но вы говорите, что я не должен определять это в РАЗДЕЛЕ ХРАНЕНИЯ. при использовании предоставленного вами кода?
  • 0
    @hiddenleaf Нет, вы должны определить переменные COBOL как переменные COBOL, но когда вы ссылаетесь на них в EXEC SQL добавьте к двоеточию :

Ещё вопросы

Сообщество Overcoder
Наверх
Меню