Выполнение SQL инструкций с помощью SQL EXECUTE
Применение
Вы используете SQL EXECUTE в сочетании с различными SQL-инструкциями.
Условия
- Введено кодовое число 555343
- Таблица существует
- Подходящее имя таблицы
Имена таблиц и столбцов должны начинаться с букв и не должны содержать математические символы, например +. Наличие подобных символов может вследствие особенности SQL-команд привести к проблемам при чтении и записи данных.
Описание функций
Система ЧПУ предоставляет следующие операторы SQL в команде SQL EXECUTE:
Инструкция | Функция |
---|---|
SELECT | Выбор данных |
CREATE SYNONYM | Создание синонима (длинные пути заменяются коротким именем) |
DROP SYNONYM | Удаление синонима |
CREATE TABLE | Создание таблицы |
COPY TABLE | Копирование таблицы |
RENAME TABLE | Переименование таблицы |
DROP TABLE | Удаление таблицы |
INSERT | Добавить строку в таблицу |
ОТМЕНИТЬ | Обновление строк из таблицы |
DELETE | Удаление строк из таблицы |
ALTER TABLE |
|
RENAME COLUMN | Переименование столбцов таблицы |
SQL EXECUTE с SQL-инструкцией SELECT
SQL-сервер сохраняет данные построчно в результирующий набор (объем результатов). Строки нумеруются по возрастанию, начиная с 0. Этот номер строки (INDEX) используют команды SQL FETCH и UPDATE.
SQL EXECUTE в сочетании с SQL-инструкцией SELECT выбирает табличные значения, передаёт их в Result-set и при этом всегда открывает транзакцию. В противоположность SQL-команде SQL SELECT комбинация из SQL EXECUTE и инструкции SELECT даёт возможность одновременного выбора нескольких столбцов и строк.
В функции SQL... "SELECT...WHERE..." задайте критерии поиска. Таким образом вы ограничите количество передаваемых строк при запросе. Если эта опция не используется, то загружаются все строки таблицы.
В функции SQL... "SELECT...ORDER BY..." задайте критерий сортировки. Передаваемые значения состоят из обозначения столбцов и ключевого слова (ASC сортировки по возрастанию или DESC - по убыванию. Если данная опция не используется, то строки сохраняются в случайной последовательности.
При помощи функции SQL... "SELECT... FOR UPDATE" отобранные строки блокируются для других приложений. Другие приложения могут читать эти строки, но не могут изменять их. При изменении записей в таблице всегда используйте эту опцию.
Пустой Result-set: если нет строк, соответствующих критериям выбора, SQL-сервер выдает действительный HANDLE без табличных записей.
Условие | Программирование |
---|---|
равно | = == |
не равно | != <> |
меньше | < |
меньше или равно | <= |
больше | > |
больше или равно | >= |
пустой | IS NULL |
не пустой | IS NOT NULL |
Соединение нескольких условий: | |
Логическое И | AND |
Логическое ИЛИ | OR |
Рекомендации
- Вы также можете определить синоним для ещё не созданной таблицы.
- Последовательность столбцов в создаваемом файле соответствует последовательности в инструкции AS SELECT.
- Для SQL команд внутри инструкции вы можете использовать простые или составные QS параметры.
- Когда вы проверяете содержимое параметра QS в дополнительной индикации состояния (вкладка QPARA), то вы видите только первые 30 символов, а не целое содержимое.
Пример
11 SQL BIND Q881 "Tab_Example.Position_Nr" | |
12 SQL BIND Q882 "Tab_Example.Measure_X" | |
13 SQL BIND Q883 "Tab_Example.Measure_Y" | |
14 SQL BIND Q884 "Tab_Example.Measure_Z" | |
. . . | |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example" |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20" |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr==:’Q11’" |
20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM ’V:\table\Tab_Example’ WHERE Position_Nr<20" |
0 BEGIN PGM SQL_CREATE_TAB MM | |
1 SQL Q10 "CREATE SYNONYM NEW FOR 'TNC:\table\NewTab.TAB'" | ; Создание синонима |
2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'" | ; Создание таблицы |
3 END PGM SQL_CREATE_TAB MM |
0 BEGIN PGM SQL_CREATE_TABLE_QS MM | |
1 DECLARE STRING QS1 = "CREATE TABLE " | |
2 DECLARE STRING QS2 = "'TNC:\nc_prog\demo\Doku\NewTab.t' " | |
3 DECLARE STRING QS3 = "AS SELECT " | |
4 DECLARE STRING QS4 = "DL,R,DR,L " | |
5 DECLARE STRING QS5 = "FROM " | |
6 DECLARE STRING QS6 = "'TNC:\table\tool.t'" | |
7 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6 | |
8 SQL Q1800 QS7 | |
9 END PGM SQL_CREATE_TABLE_QS MM |