Пожалуйста, включите JavaScript для просмотра этого сайта.

Скрипты Simple-Scada

История: Примеры скриптов > Работа с БД

Как выполнять запросы к БД

Пред. Вверх След. Еще

В базе данных можно создавать таблицы, добавлять в них строки с данными, удалять, редактировать их и т.д. Все эти действия выполняются через SQL-запросы к БД. Например, чтобы добавить новую строку в таблицу "my_table" с двумя целочисленными столбцами, нужно выполнить соответствующий SQL-запрос:

INSERT INTO `my_table` (col1, col2) VALUES (11, 65);

Чтобы получить содержимое таблицы "my_table", нужно выполнить SQL-запрос на выборку:

SELECT * FROM `my_table`;

Таким образом можно составить любой SQL-запрос, который будет выполнять поставленную задачу.

Важно! Обработать ошибки в SQL-запросах можно в скрипе "Ошибка SQL-запроса", например выдать ошибку в компонент "Текст". Также, для отладки скриптов работы с БД можно активировать опцию "Лог пользовательских SQL-запросов", тогда все пользовательские SQL-запросы будут записываться в лог-файл сервера. Данную опцию можно использовать только для отладки проекта, иначе она будет создавать лишнюю нагрузку на сервер скады.

Рекомендуем предварительно убедиться в том, что запрос не содержит ошибок. Например, чтобы составить и проверить SQL-запрос для MySQL, можно использовать MySQLWorkbench.

Когда SQL-запрос подготовлен и проверен, можно вызвать его из скрипта Simple-Scada. Для выполнения пользовательских SQL-запросов в Simple-Scada используется процедура RunSQL - в нее нужно передать код SQL-запроса и скада автоматически отправит этот запрос на выполнение. Допустим у нас имеется следующий SQL-запрос:

 INSERT INTO `my_table` (col1, col2) VALUES (11, 65);

Требуется выполнить его, когда пользователь нажмет на кнопку. Для этого нужно выделить кнопку и на событие OnClick написать скрипт со следующим кодом:

var
  aQuery: string;
begin
  { Формируем запрос к БД }
  aQuery := 'INSERT INTO `my_table` (col1, col2) VALUES (11, 65);';
  { Отправляем запрос на выполнение c тегом = 0}
  RunSQL(aQuery, nil0); 
end.

Сначала мы записали текст SQL-запроса в строковую переменную aQuery, а затем вызвали процедуру RunSQL с этой строковой переменной. Далее, скада автоматически отправит наш запрос в БД. Если запрос выполнится успешно (без ошибок), то скада вызовет все скрипты с типом события "Выполнен SQL-запрос". Если при выполнении запроса что-то пойдет не так (например, в запросе имеется ошибка), то скада вызовет скрипты с типом события "Ошибка SQL-запроса".

Примеры скриптов

Порядок выполнения запросов

Одинарные кавычки в SQL-запросах

Длинные SQL-запросы в коде

Как понять что запрос выполнился

Блокировка кнопки на время выполнения запроса

Метод RunSQL компонента "Таблица"

Работа с выборкой из множества строк