Поделиться через


Определение наборов данных отчета для реляционной базы данных SQL Server

Изменения: 14 апреля 2006 г.

Службы Reporting Services включают модуль обработки данных, поддерживающий получение данных отчетов из реляционных баз данных Microsoft SQL Server. Этот модуль получает данные из таблиц, представлений и хранимых процедур реляционной базы данных, а также из других структур данных, определенных в базовом источнике данных. После подключения к источнику данных можно создать набор данных отчета, определяющий данные из этого источника, которые нужно использовать в отчете. Набор данных служб Reporting Services включает источник данных, запрос для извлечения данных при обработке отчета и коллекцию полей. Определение набора данных сохраняется в определении отчета. В окне «Наборы данных» отображаются текущие определения наборов данных в отчете.

Набор данных определяется путем создания запроса в виде текста на языке Transact-SQL или с помощью вызовов хранимых процедур, либо путем выбора таблицы и получения всех ее данных. Коллекция полей для набора данных создается автоматически из запроса. Можно изменять поля или добавлять вычисляемые поля. Вычисляемые поля содержат значения на основе выражений, вычисляемых при выполнении запроса. Можно также создавать фильтры для ограничения данных на стороне источника перед отправкой в отчет. Инструкции по определению набора данных см. в разделах руководства по данным отчетов.

Имеются два конструктора запросов для реляционных источников данных: обычный и графический. По умолчанию открывается обычный конструктор запросов. С помощью обычного конструктора запросов можно вводить текст запроса на языке Transact-SQL непосредственно, вставлять его из других источников, вводить сложные запросы, которые нельзя построить с помощью графического конструктора запросов, а также вводить выражения на основе запросов. С помощью графического конструктора запросов можно просматривать метаданные в источнике данных для интерактивного конструирования запроса, а также просматривать список хранимых процедур или таблиц в источнике данных.

Чтобы открыть конструкторы запросов в конструкторе отчетов, выберите вкладку Данные. Для переключения от одного конструктора запросов к другому нажмите переключатель Обычный конструктор запросов (Значок для кнопки «Обычный конструктор запросов») на панели инструментов «Представление данных». Дополнительные сведения и примеры см. в разделе Пользовательский интерфейс конструктора запросов SQL Server.

После определения запроса также можно указать свойства, например Timeout или CaseSensitivity, и определить, какие параметры отчета должны передавать значения параметрам запроса. При выполнении запроса будет отображен результирующий набор из источника данных. Столбцы в результирующем наборе соответствуют полям набора данных. В процессе обработки отчета в его элементах, связанных с полями набора данных, будут отображены полученные или вычисленные данные. Отчет обрабатывает только первый результирующий набор, полученный с помощью какого-либо запроса.

Конструкторы запросов для реляционных данных содержат следующие три типа команд.

  • Тип Текст принимает инструкции Transact-SQL.
  • Тип StoredProcedure принимает вызовы хранимых процедур из источника данных. Этот режим не поддерживает выходные параметры.
  • Тип TableDirect принимает имя таблицы из источника данных и возвращает все столбцы этой таблицы. Тип TableDirect поддерживается не всеми поставщиками данных.

Использование текста запроса

С помощью языка Transact-SQL можно определить данные в наборе данных. Для этого установите тип команд для набора данных в Текст и введите текст на языке Transact-SQL непосредственно в области SQL.

Например, следующий запрос на языке Transact-SQL позволяет выбрать все имена всех сотрудников.

SELECT FirstName, LastName
FROM   HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID

Нажмите кнопку Выполнить на панели инструментов, чтобы выполнить запрос и отобразить результаты в области результатов.

Так как этот режим команд принимает инструкции Transact-SQL, в нем можно также выполнить хранимую процедуру. Например, следующая инструкция SQL вызывает хранимую процедуру uspGetEmployeeManagers из базы данных AdventureWorks.

EXEC uspGetEmployeeManagers '1'

Использование хранимых процедур

Хранимые процедуры можно использовать для определения данных в наборе данных. Для этого можно либо выполнить хранимую процедуру из области «Запрос», либо установить тип команд для набора данных в StoredProcedure и выбрать ее в раскрывающемся списке. В случае работы в графическом конструкторе запросов щелкните раскрывающийся список «Тип команд» и просмотрите доступные хранимые процедуры из источника данных. При работе в обычном конструкторе запросов, если имя хранимой процедуры уже известно, введите его на панели «Запрос».

Службы Reporting Services поддерживают только хранимые процедуры, возвращающие лишь один набор данных. Если хранимая процедура возвращает несколько результирующих наборов, используется только первый из них.

Если у хранимой процедуры есть параметр со значением по умолчанию, к этому значению в службах Reporting Services можно получить доступ, используя ключевое слово DEFAULT как значение параметра. Если параметр запроса связан с параметром отчета, пользователь может ввести или выбрать слово DEFAULT в поле ввода параметра отчета. Дополнительные сведения см. в разделе Хранимые процедуры (компонент Database Engine).

Использование типа команд TableDirect

Существует легкий способ получить все столбцы отдельной таблицы для определения данных в наборе данных. Для этого установите тип команд в TableDirect и выберите таблицу в раскрывающемся списке. Если таблица содержит схему источника данных, проверьте, включена ли схема в имя таблицы. Если это не так, ее можно ввести.

Например, введите следующую команду в области «Запрос», выбрав тип команд TableDirect. Эта команда получает все данные из таблицы Person.Contact базы данных AdventureWorks.

Person.Contact

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

ms159260.note(ru-ru,SQL.90).gifПримечание.
Тип команд TableDirect не поддерживается типом источников данных Microsoft SQL Server. Для использования этого режима выберите тип источника данных OLE DB, а затем поставщик Microsoft OLE DB Provider для SQL Server.

Использование параметров запроса

Если запрос содержит параметры, конструктор отчетов автоматически создает соответствующие параметры отчета в файле определения отчетов, когда вводится запрос. При выполнении запроса значения параметров отчета передаются в параметры запроса. Например, следующий SQL-запрос создает параметр отчета с именем EmpID:

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

Связями между параметрами отчета и запроса можно управлять на вкладке Параметры диалогового окна Набор данных. Запросы с параметрами, связанными с параметрами отчета, не требуют инструкции DECLARE.

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

ms159260.note(ru-ru,SQL.90).gifПримечание.
Если изменится имя параметра запроса или удалится параметр запроса, соответствующий ему параметр отчета не будет автоматически изменен или удален. Параметр отчета можно удалить в диалоговом окне Параметры отчета. Дополнительные сведения см. в разделе Работа с параметрами в службах Reporting Services.

Создание набора данных

  1. На вкладке Данные в раскрывающемся списке Набор данных выберите <Новый набор данных>.

  2. В диалоговом окне Набор данных в раскрывающемся списке «Источник данных» выберите Новый источник данных.

  3. В диалоговом окне Источник данных в раскрывающемся списке Тип выберите «Microsoft SQL Server».

  4. Задайте строку соединения для работы с источником данных SQL Server.
    За сведениями о параметрах соединения обратитесь к администратору базы данных. Ниже приведен пример строки соединения для задания образца базы данных AdventureWorks на локальном клиенте.

    Data Source=localhost;Initial Catalog=AdventureWorks
    
  5. Задайте учетные данные базы данных в диалоговом окне Источник данных на вкладке Учетные данные.

  6. Нажмите кнопку «ОК».

Дополнительные сведения см. в разделе Соединение с источником данных.

См. также

Задачи

Как создать набор данных (конструктор отчетов)

Основные понятия

Определение наборов данных отчета
Средства проектирования запросов в службах Reporting Services
Соединение с источником данных

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Новое содержимое
  • Тип команд TableDirect.
  • Подраздел «Создание набора данных».
Измененное содержимое