Параметризованные запросы
Параметризованные запросы используются для назначения некоторых параметров во время выполнения запроса. Исходные данные для процесса параметризации записаны в формате XML, а не на языке запросов SberMobile. Когда опция Параметризован включена в настройках запроса, процессор обработки запросов рассматривает текст в качестве параметризованных данных. Для получения более подробной информации см. Механизм параметризации.
Далее приведен пример параметризованных данных с двумя полями в Формате (логический 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. Необходимо избегать таких символов с < и > соответственно. |
Пример 1: Выбор поддиапазона истории переменной
Этот параметризованный запрос позволяет операторам выбирать дату/время начала и окончания и показывает исторические значения переменной batteryChargeCurrent
, которые были собраны за выбранный период времени.
SELECT * FROM
utilities:variableHistory(“users.admin.devices.site1”, “batteryChargeCurrent”, “<e>{startDate}</e>”, “<e>{endDate}</e>”)