Другим способом получения данных из хранилища является способ получения данных при запросе к хранилищу. Запросы (Queries) представляют собой скрипт на одном из диалектов языка SQL, который служит для извлечения данных из таблиц и предоставления их серверу отчетов. Особенность запросов состоит в том, что они получают данные из таблиц базы данных и создают на их основе временную таблицу. Данные во временной таблице будут отфильтрованы, сгруппированы, отсортированы и упорядочены, согласно параметрам запроса. Затем, временная таблица передается на сервер отчетов. Применение запросов предоставляет возможность избежать дублирования данных в таблицах, минимизирует объем передаваемого трафика между СУБД и клиентской частью, а также обеспечивает максимальную гибкость при поиске и отображении данных в базе данных.

 

 

Новый запрос

Для того чтобы создать запрос, необходимо выделить созданное соединение к хранилищу данных и нажать кнопку Новый запрос (New Query) на панели инструментов сервера. После чего, будет вызвано окно Новый запрос.

 

 

img_1 В поле Наименование (Name) указывается имя для нового запроса.

img_2 В поле Описание (Description) можно указать описание для текущего запроса.

img_3 При помощи параметра Период обновления (Refresh Frequency) задается интервал времени, по прошествии которого будет происходить повторное соединение с хранилищем данных и обновление необходимых данных. Доступны следующие варианты:

strel11 Однократно (Once) - получение данных осуществляется один раз при создании источника данных;

strel11 Каждые 10 минут (Each 10 Minutes) - в этом случае получение данных будет осуществляться каждые 10 минут;

strel11 Каждые 30 минут (Each 30 Minutes) - данные будут обновляться каждые полчаса;

strel11 Каждый час (Each Hour) - для обновления ежечасно следует выбрать данный вариант;

strel11 Каждые 4 часа (Each 4 Hour) - получение данных будет происходить по прошествии каждых 4 часов;

strel11 Каждые полдня (Each Half Day) - обновление данных будет происходить раз в 12 часов;

strel11 Каждый день (Each Day) - обновление данных будет происходить один раз в сутки;

strel11 Всегда (Always) - данный вариант означает, что каждый раз при построении отчета (т.е. при обращении к источнику данных) будет происходить обновление данных.

 

img_4 В этом поле определяется тип: запрос или хранимая процедура.

img_5 В данном поле указывается текст запроса, а также присутствую следующие команды управления:

strel11 Кнопка Очистить поле предоставляет возможность удалить весь текст запроса из поля Запрос.

strel11 Кнопка Проверить запрос предоставляет возможность произвести тестовое выполнение запроса. Результат будет отображен пользователю в виде сообщения.

strel11 Кнопка Просмотр запроса предоставляет возможность просмотреть данные запроса.

 

img_6 Панель управления, которая содержит следующие кнопки:

strel11 Кнопка Добавить колонку (Add Column) предоставляет возможность добавить колонку данных в источник данных. Стоит учитывать, что добавленная колонка будет содержать лишь описание, т.е. не будет содержать реальных данных.

strel11 Кнопка Добавить параметр (Add Parameter) предоставляет возможность добавить в текущий источник данных.

strel11 Кнопка Удалить (Delete) предоставляет возможность удалить выделенный параметр или колонку из текущего источника данных.

strel11 Кнопка Получить колонки (Retrieve Columns) предоставляет возможность получить все колонки из хранилища данных по текущему запросу.

 

img_7 На данной панели отображаются колонки данных в этом источнике.

img_8 Панель параметров выделенной колонки.

 

 

Колонки данных

Иногда возникает необходимость добавить колонку данных в источник данных или в запрос. Для того чтобы создать новую колонку данных, необходимо нажать кнопку Добавить колонку (Add Column):

 

 

 

Следует отметить, что созданная таким образом колонка данных, является лишь описанием (виртуальной) колонки данных и реальных данных она не содержит. Если в базе данных эта колонка отсутствует, то в момент обращения к базе данных сервер выдаст ошибку. Все созданные колонки данных отображаются в общем списке колонок.

 

 

 

Также у созданной колонки можно изменить параметры:
 

 

img_1 В поле Наименование в источнике (Name in Source) указывается имя колонки в источнике данных;

img_2 В поле Наименование (Name) указывается имя колонки, которое будет отображено пользователю;

img_3 Поле Тип (Type) предоставляет возможность выбрать тип данных колонки.

 

 

Параметры

При создании запроса можно использовать Параметры (Parameters) в запросе. Параметры предоставляют возможность передать в запрос дополнительных условий для выборки данных. Параметры могут быть использованы только совместно с SQL-источниками данных. Такие источники данных обычно имеют поле Текст запроса (Text Query).

 

Для того, чтобы вставить параметр в запрос, следует нажать кнопку Новый параметр (New Parameter) на панели инструментов при создании или редактировании запроса.

 

 

 

После нажатия данной кнопки будет создан новый параметр, который будет отображен в закладке Параметры на панели Колонки (Columns).

 

 

 

Каждый параметр имеет свойства, с помощью которых можно изменить его настройки.

 

 

img_1 С помощью свойства Имя (Name) можно изменить имя параметра. Это свойство работает только для именованных параметров.

img_2 Для того, чтобы изменить тип параметра следует использовать значения свойства Тип (Type). Значения данного свойства находятся в выпадающем списке, и представляют собой перечисление типов, используемых в параметрах для конкретной базы данных. Стоит учитывать, что список типов отличается в зависимости от базы данных.

img_3 Для каждого параметра можно указать значение, которое используется для заполнения параметра в процессе автоматического исполнения запроса без участия пользователя.

img_4 Если установлен данный флажок, то поле Значение (Value) будет недоступно. По умолчанию, будет использоваться null или значение, которое указано в хранимой процедуре на сервере.

 

Также параметр необходимо указать и в самом запросе.

 

 

 

Как правило, для указания параметра в запросе используется символ @. Символ @ используется с именованными параметрами, т.е. после символа @ следует имя параметра. Но в некоторых базах данных (к примеру, в OleDB), символ @ может не восприниматься адаптером базы данных и запросы с параметрами работать не будут.

 

В этом случае можно использовать неименованные параметры. Для указания в запросе неименованных параметров используется символ ?. После символа ? не указывается имя параметра. В этом случае, важен порядок параметров в закладке Параметры. По мере указания символов ? в запросе, параметры будут браться последовательно из закладки Параметры в направлении "сверху-вниз". Допустим есть три параметра, которые указываются в запросе:

 

 

 

Поскольку в данном случае используются неименованные параметры (обозначенные символом ?), то при выполнении запроса параметры будут браться из закладки Параметры последовательно "сверху-вниз". На рисунке снизу схематично представлено сопоставление параметров из закладки Параметры к параметрам в запросе:

 

 

 

При этом, используемые параметры в данном примере должны иметь имена, но при использовании символа ? в запросе, они не играют роли.