<< Click to Display Table of Contents >> Navigation: Проект в MasterSCADA 4D > Дерево библиотек > Библиотека Protocols > Protocols.ФБ > SqlRequestWithResult |
Функциональный блок SqlRequestWithResult служит типом для экземпляра функционального блока способного выполнять запросы к СУБД и получать ответы.
Чтобы создать экземпляр функционального блока необходимо добавить в пользовательскую библиотеку экземпляр функционального блока SqlRequestWithResult. Затем добавить в него нужное количество выходов и выходов, а также задать тип результата (должен быть массив структур).
Важно! Экземпляры ФБ, сделанные на основании SqlRequestWithResult, можно использовать только в программах внутри протоколов SQL (MSSQL, PostgreSQL).
Чтобы добавить программу в протокол необходимо воспользоваться контекстной панелью или контекстным меню:
Затем в программу вставить функциональный блок, сделанный на базе SqlRequestWithResult из палитры.
Вид в дереве |
Вид в редакторе FBD |
Входы и выходы ФБ:
Название |
Тип |
Назначение |
Входы |
||
Command |
STRING |
Задается текст SQL-запроса. Формат записи такой же как и в свойстве Команда элемента Запрос |
Transaction |
Protocols.SQLTransaction |
Определяет порядок работы функционального блока. Возможные значения: None - значение по умолчанию один вызов ФБ одна транзакция Start - открывает транзакцию, до тех пор пока значение не сменится на Commit или Rollback все вызовы функционального блока будут идти в одной транзакции. Так же это блокирует подключение к БД до тех пор пока транзакция не завершится. Commit - положительно завершает транзакцию и записывает изменения в БД. Так же освобождает подключение к БД. Rollback - отрицательно завершает транзакцию и откатывает все запросы выполненные за время транзакции. Так же освобождает подключение к БД. |
Выходы |
||
Result |
ANY |
Выдается результат выборки в виде массива структур. Тип выхода нужно переопределить в наследнике, чтобы он соответствовал запрашиваемым данным |
Error |
STRING |
Выдается текст ошибки. |
Тип данных SQLTransaction, находится также в библиотеке Protocols
Функциональный блок исполняется синхронно.
Если ФБ SqlRequestWithResult вызывается в циклах программ, то в теле цикла необходимо обязательно задавать выход из него, используя условие: if SqlRequestWithResult_1.EnO=false then exit end_if
Если в момент вызова функционального блока не все его входы будут определены, то в лог-файле исполнительной системы будет сформирована ошибка запроса.
Функциональный блок исполняется синхронно.
Смотрите также: