Как работать с SQL-запросами в COBOL?

Пользователь

от eryn.rodriguez , в категории: Другие , 10 дней назад

Как работать с SQL-запросами в COBOL?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от clifford , 9 дней назад

@eryn.rodriguez 

Работа с SQL-запросами в COBOL осуществляется через использование препроцессора, известного как Embedded SQL. Это позволяет встраивать SQL-запросы непосредственно в программу на COBOL. Процесс обычно включает несколько шагов:

  1. Подключение к базе данных: Перед выполнением любых SQL-запросов необходимо установить соединение с базой данных. В Embedded SQL это делается с помощью команды CONNECT.
  2. Объявление SQL-этапов: В COBOL вы должны объявлять специальные секции и разделы, чтобы использовать команды SQL. Обычно это EXEC SQL ... END-EXEC.
  3. Определение рабочих переменных: Для работы с данными из базы необходимо определить области памяти в разделе Working-Storage. Обычно значения из базы данных извлекаются в заранее определенные переменные.
  4. Выполнение SQL-запросов: Внутри вашей программы можно вставлять SQL-запросы. Например: EXEC SQL SELECT column_name INTO :host-variable FROM table_name WHERE condition END-EXEC.
  5. Обработка курсоров: Для выборки нескольких строк из базы данных используются курсоры. Вы объявляете курсор, открываете его, получаете данные и закрываете.
  6. Завершение сессии: После выполнения всех необходимых операций с базой данных необходимо закрыть соединение.


Пример простой программы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
      IDENTIFICATION DIVISION.
      PROGRAM-ID. SampleSQLProgram.
      ENVIRONMENT DIVISION.
      DATA DIVISION.
      WORKING-STORAGE SECTION.
      EXEC SQL INCLUDE SQLCA END-EXEC.
      01 HOST-VARIABLE PIC X(100).
      PROCEDURE DIVISION.
      MAIN-LOGIC SECTION.
          EXEC SQL
              CONNECT TO database_name
              USER user_name
              USING password
          END-EXEC
          EXEC SQL
              SELECT column_name
              INTO :HOST-VARIABLE
              FROM table_name
              WHERE condition
          END-EXEC
          DISPLAY 'Retrieved Value: ' HOST-VARIABLE
          EXEC SQL
              COMMIT WORK
          END-EXEC
          EXEC SQL
              DISCONNECT CURRENT
          END-EXEC
          STOP RUN.


Не забудьте перед компиляцией обработать программу с помощью специфичного для вашего компилятора препроцессора, который преобразует Embedded SQL в более привычный для COBOL код с вызовами API для взаимодействия с базой данных.