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