Забыли пароль?
  • Главная
  • /
  • Статьи
  • /
  • Как использовать SQL запросы при создании внутреннего источника данных отчета в дизайнере отчетов FastReport.Net

Как использовать SQL запросы при создании внутреннего источника данных отчета в дизайнере отчетов FastReport.Net

Dmitriy Fedyashov

При создании подключения к SQL СУБД вы можете задать запрос, чтобы выбрать отфильтрованные или комбинированные данные. Штатные средства мастера создания источника данных также позволяют включать параметры в SQL запрос. При этом, обозначение параметра будет зависеть от типа СУБД, к которой происходит подключение. Например, для MS SQL параметр в запросе имеет префикс @. А для базы Access вместо параметра указывается символ "?". Если параметров несколько, то в запрос они будут подставляться согласно порядку в списке параметров.

Допустим, мы создали строку подключения к базе данных MS SQL. Следующий шаг – выбор таблиц:

 

На этом этапе мы можем создать SQL запрос с помощью кнопки Add SQL query… . Результат будущего запроса будет сохранен в таблице. Требуется задать ее имя:

 

Затем, пишем текст запроса:

 

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

Мы указали параметр в условии запроса. На следующем шаге нужно создать параметр с тем же именем.

 

Так как мы просто демонстрируем работу с параметрами, то просто зададим значение по умолчанию:

Далее выбираем нужные колонки.

Вот и все. Таблица готова.

Помните, желательно писать запросы по всем правилам SQL, с указанием схемы и, возможно, с названиями в кавычках. Вот пример правильного запроса к базе postgresql:

1
SELECT * FROM public."Users" WHERE "Users"."Name"= @Name

Но, помимо параметризированного запроса, мы также можем использовать динамические запросы. Это запросы, которые мы формируем в текстовом виде, а затем – выполняем. Такие запросы позволяют с помощью переменных отчета подставлять, например, имя таблицы или параметра, или часть условия where – все что угодно. Выглядит это так:

 

Но и это еще не все. Вы также можете использовать хранимые функции и хранимые процедуры в запросе. Пример использования функции:

 

Параметры в функции передаются в скобках через запятую.

Пример использования хранимой процедуры:

Параметры в хранимой процедуре следуют после имени процедуры через запятую.

Таким образом вы можете расширить возможности формирования данных, чтобы не делать это внутри отчета.

Похожие статьи:

назад