Параметризованные запросы

Параметризованные запросы используются для назначения некоторых параметров во время выполнения запроса. Исходные данные для процесса параметризации записаны в формате XML, а не на языке запросов AggreGate. Когда опция Параметризован включена в настройках запроса, процессор обработки запросов рассматривает текст в качестве параметризованных данных. Для получения более подробной информации см. Механизм параметризации.

Далее приведен пример параметризованных данных с двумя полями в Формате (логический byusername and string username) и Параметризованное выражение:

SELECT * FROM users.*:childInfo <p enabled="{byusername}">WHERE childInfo$name LIKE '%<e>{username}</e>%'</p>

Данный запрос будет запрашивать два параметра при выполнении:

Если пользователь указывает "Фильтровать по имени пользователя", то итоговый текст запроса будет следующим:

SELECT * FROM users.*:childInfo WHERE childInfo$name LIKE '%text_entered_in_User_Name_field%'

т.е. будут отображаться только те пользователи, чьи имена включают данный текст.

Если "Фильтр по имени пользователя" не отмечен, то будут отображаться все пользователи, потому что  параметризованный текст запроса будет следующим:

SELECT * FROM users.*:childInfo

Работая с параметризованными запросами, необходимо знать, что они будут обрабатываться как XML текст. Таким образом, использование таких символов как '<' and '>' для операций сравнения приведет к нарушению разметки XML. Необходимо избегать таких символов с &lt; и &gt; соответственно.

Пример 1: Выбор поддиапазона истории переменной

Этот параметризованный запрос позволяет операторам выбирать дату/время начала и окончания и показывает исторические значения переменной batteryChargeCurrent, которые были собраны за выбранный период времени.

SELECT * FROM

   utilities:variableHistory(“users.admin.devices.site1”, “batteryChargeCurrent”, “<e>{startDate}</e>”, “<e>{endDate}</e>”)