Считывание табличного значения с помощью SQL SELECT

Применение

SQL SELECT считывает отдельное значение из таблицы и сохраняет результат в определенном Q-параметре.

Условия

  • Введено кодовое число 555343
  • Таблица существует
  • Подходящее имя таблицы
  • Имена таблиц и столбцов должны начинаться с букв и не должны содержать математические символы, например +. Наличие подобных символов может вследствие особенности SQL-команд привести к проблемам при чтении и записи данных.

Описание функций

Черные стрелки и соответствующий синтаксис показывают внутренние процессы SQL SELECT

В случае SQL SELECT какая-либо транзакция или связь между столбцом и Q-параметром отсутствует. Существующие связи на заданные столбцы система ЧПУ не учитывает. При считывании значений система ЧПУ копирует исключительно заданные в инструкции параметры.

Ввод

11 SQL SELECT Q5 "SELECT Mess_X FROM Tab_Example WHERE Position_NR==3"

; сохранение значения столбца "Position_Nr таблицы "Tab_Example" в Q5

Функция ЧПУ содержит следующие элементы синтаксиса:

Элемент синтаксиса

Значение

SQL BIND

Открыватель синтаксиса для команды SQL SELECT

Q/QL/QR, QS или Q REF

Переменная, в которой система ЧПУ сохраняет результат

" " или QS

Оператор SQL или параметр QS с определением следующего содержания:

  • SELECT: столбцы таблицы для передаваемых значений
  • FROM: синоним или абсолютный путь к таблице (путь в кавычках)
  • WHERE с именем столбца, условием и сравниваемой величиной (Q-параметр после : в кавычках)

Рекомендации

  • Выбрать несколько значений или столбцов можно при помощи SQL-команды SQL EXECUTE и инструкции SELECT.
  • Для SQL команд внутри инструкции вы можете использовать простые или составные QS параметры.
  • Конкатенация буквенно-цифровых значений

  • Когда вы проверяете содержимое параметра QS в дополнительной индикации состояния (вкладка QPARA), то вы видите только первые 30 символов, а не целое содержимое.
  • Вкладка QPARA

Пример

Результат следующее управляющих программ идентичен.

0 BEGIN PGM SQL_READ_WMAT MM

1 SQL Q1800 "CREATE SYNONYM my_table FOR 'TNC:\table\WMAT.TAB'"

; создание синонима

2 SQL BIND QS1800 "my_table.WMAT"

; привязка QS-параметра

3 SQL QL1 "SELECT WMAT FROM my_table WHERE NR==3"

; определение поиска

* - ...

* - ...

3 SQL SELECT QS1800 "SELECT WMAT FROM my_table WHERE NR==3"

; считывание и сохранение значения

* - ...

* - ...

3 DECLARE STRING QS1 = "SELECT "

4 DECLARE STRING QS2 = "WMAT "

5 DECLARE STRING QS3 = "FROM "

6 DECLARE STRING QS4 = "my_table "

7 DECLARE STRING QS5 = "WHERE "

8 DECLARE STRING QS6 = "NR==3"

9 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6

10 SQL SELECT QL1 QS7

* - ...