Считывание табличного значения с помощью SQL SELECT
Применение
SQL SELECT считывает отдельное значение из таблицы и сохраняет результат в определенном Q-параметре.
Условия
- Введено кодовое число 555343
- Таблица существует
- Подходящее имя таблицы
Имена таблиц и столбцов должны начинаться с букв и не должны содержать математические символы, например +. Наличие подобных символов может вследствие особенности SQL-команд привести к проблемам при чтении и записи данных.
Описание функций
В случае 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 с определением следующего содержания:
|
Рекомендации
- Выбрать несколько значений или столбцов можно при помощи SQL-команды SQL EXECUTE и инструкции SELECT.
- Для SQL команд внутри инструкции вы можете использовать простые или составные QS параметры.
- Когда вы проверяете содержимое параметра QS в дополнительной индикации состояния (вкладка QPARA), то вы видите только первые 30 символов, а не целое содержимое.
Пример
Результат следующее управляющих программ идентичен.
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 | |
* - ... |