SqlRequest

<< Click to Display Table of Contents >>

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

SqlRequest

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

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

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

sqlrequest

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

Вид в дереве

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

sqlrequest_1

sqlrequest_2

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

Название

Тип

Назначение

Входы

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

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

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