Параметры запроса: различия между версиями
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) |
||
| Строка 2: | Строка 2: | ||
==Пример== | ==Пример== | ||
Рассмотрим | Рассмотрим запрос к демонстрационной базе <code>PostgreSQL</code>: | ||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
| Строка 21: | Строка 21: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
В запросе определен параметр с именем <code>lab_id</code>. | |||
<div style="background-color: #e7f3ff; border-left: 5px solid #2196f3; padding: 15px; margin: 10px 0;"> | <div style="background-color: #e7f3ff; border-left: 5px solid #2196f3; padding: 15px; margin: 10px 0;"> | ||
| Строка 27: | Строка 27: | ||
Способ определения параметров в запросе отличается для разных СУБД: | Способ определения параметров в запросе отличается для разных СУБД: | ||
*для <code>PosgreSQL</code> и <code>MS SQL</code> параметр обозначается символом <code>@</code>; | *для <code>PosgreSQL</code> и <code>MS SQL</code> параметр обозначается символом <code>@</code> (например, <code>@lab_id</code>); | ||
*для <code>Oracle</code> параметр обозначается символом <code>:</code> (например, <code>:lab_id</code>); | |||
*для <code>MS Access</code> параметры не имеют имен и обозначаются символами <code>?</code>. | *для <code>MS Access</code> параметры не имеют имен и обозначаются символами <code>?</code>. | ||
</div> | </div> | ||
Версия от 04:28, 16 октября 2026
В тексте запроса могут присутствовать параметры.
Пример
Рассмотрим запрос к демонстрационной базе PostgreSQL:
SELECT DISTINCT
cl."ID" AS lab_id,
e."ID" AS fio_id,
e."SURNAME" AS surname,
e."NAME" AS name,
e."PATRONYMIC" AS patronymic,
CONCAT(e."SURNAME", ' ', e."NAME", ' ', e."PATRONYMIC") AS fio
FROM "COMPANY_LEVEL" cl
INNER JOIN "EMPLOYEE_CLB" e_clb
ON cl."ID" = e_clb."COMPANY_LEVEL_ID"
INNER JOIN "EMPLOYEE" e
ON e."ID" = e_clb."ENTITY_ID"
WHERE cl."ID" = @lab_id
ORDER BY fio;
В запросе определен параметр с именем lab_id.
Примечание
Способ определения параметров в запросе отличается для разных СУБД:
- для
PosgreSQLиMS SQLпараметр обозначается символом@(например,@lab_id); - для
Oracleпараметр обозначается символом:(например,:lab_id); - для
MS Accessпараметры не имеют имен и обозначаются символами?.
Для того чтобы работать с параметром, надо, как минимум, определить его значение. Это можно сделать на третьем шаге мастера "Мастер запроса", который мы рассмотрели выше. Для создания параметра нажмите кнопку "Добавить параметр". Будет создан новый параметр:

Свойства
В окне справа необходимо настроить следующие свойства параметра:
| Свойство | Описание |
|---|---|
Name
|
Имя параметра - то же самое имя параметра, которое использовалось в тексте запроса (подставляется автоматически).
Примечание: некоторые СУБД (например, |
DataType
|
Тип данных параметра. |
DefaultValue
|
Значение по умолчанию, которое будет присвоено параметру
|
Expression
|
Выражение, которое возвращает значение параметра - будет вычислено при запуске отчета на выполнение. |
Size
|
Размер данных параметра. Это свойство нужно указывать, если параметр имеет тип данных строка.
|
Примечание
Если вы неправильно настроите свойства параметра, вы получите ошибку в момент переключения на последнюю страницу мастера.