SqlRequestWithResult

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево библиотек > Библиотека Protocols > Protocols.ФБ >

SqlRequestWithResult

Функциональный блок SqlRequestWithResult служит типом для экземпляра функционального блока способного выполнять запросы к СУБД и получать ответы.

Чтобы создать экземпляр функционального блока необходимо добавить в пользовательскую библиотеку экземпляр функционального блока SqlRequestWithResult. Затем добавить в него нужное количество выходов  и выходов,  а также задать тип результата (должен быть массив структур).  

Важно! Экземпляры ФБ, сделанные на основании SqlRequestWithResult, можно использовать только в программах внутри протоколов SQL (MSSQL, PostgreSQL).

Чтобы добавить программу в протокол необходимо воспользоваться контекстной панелью или контекстным меню:

sqlrequest

Затем в программу вставить функциональный блок, сделанный на базе SqlRequestWithResult  из палитры.

Вид в дереве

Вид в редакторе FBD

sqlrequestwithresult

sqlrequestwithresult_1

Входы и выходы ФБ:

Название

Тип

Назначение

Входы

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

Если в момент вызова функционального блока не все его входы будут определены, то в лог-файле исполнительной системы будет сформирована ошибка запроса.

Функциональный блок исполняется синхронно.

Смотрите также: