Скрипты Simple-Scada позволяют выполнять любые SQL-запросы с последующей обработкой результата. Выполнить SQL-запрос можно используя процедуру RunSQL, а обработать результат можно в любом скрипте с типом события "Выполнен SQL-запрос". Всю необходимую информацию по SQL-запросам можно найти в интернете, например: неофициальное руководство по MySQL 4.0 на русском языке, официальное руководство по MySQL 8.0.
Важно! Процедура RunSQL доступна только в версиях Standard, Professional и Demo-Time. Подробные примеры работы с БД можно найти в демо-проекте на странице "Скрипты" -> "Работа с БД", а также в разделе "Примеры скриптов".
Синтаксис
procedure RunSQL(AQuery: string; const ASender: TObject = nil; const ATag: Integer = 0);
Описание
Выполняет запрос AQuery для базы данных проекта. В процедуру можно передать необязательные параметры: объект ASender и целое число ATag для собственных нужд. Обработать результаты запроса можно в скриптах с типом события "Выполнен SQL-запрос". Такие скрипты содержат параметр DataSet(TM_DataSet) - набор данных, полученный в результате выполнения запроса. DataSet имеет свойства Sender и Tag, которые были заданы во время вызова процедуры RunSQL. Также, набор данных DataSet включает в себя список столбцов Fields. Каждый столбец имеет тип TM_DBField.
Важно! Обработать ошибки в SQL-запросах можно в скрипе "Ошибка SQL-запроса", например вывести ошибку в компонент "Текст". Также, для отладки скриптов работы с БД можно активировать опцию "Лог пользовательских SQL-запросов", тогда все пользовательские SQL-запросы будут записываться в лог-файл сервера. Данную опцию можно использовать только для отладки проекта, иначе она будет создавать лишнюю нагрузку на сервер скады.
Пример кода
var
aQuery: string;
begin
{ Формируем запрос к БД }
aQuery := 'SELECT `A` FROM `table_1` WHERE ID = 6;';
{ Отправляем запрос на выполнение c тегом = 1}
RunSQL(aQuery, nil, 1);
end.