Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
Недавно начал разбираться с SQL Reporting Services, вещь красивая, но некоторые вещи сразу ввели в ступор...
Верно ли я понимаю, что для отчета SSRS , если он базируется на хранимой процедуре - можно использовать только один (первый) RecordSet?
ссылка

Reporting Services supports stored procedures that return only one set of data. If a stored procedure returns multiple result sets, only the first one is used.

В текущей архитектуре у меня часто бывает два и более вывода данных из SP , например заголовочная часть и сами данные.
Получается, если в качестве средства отчетов я выберу SSRS, то мне надо переписывать все отчёты?

Как вы с этим живёте , может быть это в последних версиях исправлено или вы юзаете 1-н отчет -> 1-хранимка или вовсе отказались от хранимок и пользуетесь select - ами (ORM средства например генерят автоматические запросы)?
Вообщем на моём первом свидании с SSRS случился конфуз, как быть? :-(
15 авг 19, 13:05    [21950023]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
medoed
Недавно начал разбираться с SQL Reporting Services, вещь красивая, но некоторые вещи сразу ввели в ступор...
Верно ли я понимаю, что для отчета SSRS , если он базируется на хранимой процедуре - можно использовать только один (первый) RecordSet?
ссылка

Reporting Services supports stored procedures that return only one set of data. If a stored procedure returns multiple result sets, only the first one is used.

В текущей архитектуре у меня часто бывает два и более вывода данных из SP , например заголовочная часть и сами данные.
Получается, если в качестве средства отчетов я выберу SSRS, то мне надо переписывать все отчёты?

Как вы с этим живёте , может быть это в последних версиях исправлено или вы юзаете 1-н отчет -> 1-хранимка или вовсе отказались от хранимок и пользуетесь select - ами (ORM средства например генерят автоматические запросы)?
Вообщем на моём первом свидании с SSRS случился конфуз, как быть? :-(
Да, все так. Давно не использовал новые версии, но в 2014-м все еще так было.

Приходилось изворачиваться, вводя в процедуру доп. параметр, отвечающий за то, какой рекордсет считать и возвращать, и вызывать процедуру несколько раз с разными значениями параметра.
15 авг 19, 13:23    [21950046]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
Minamoto
medoed
Недавно начал разбираться с SQL Reporting Services, вещь красивая, но некоторые вещи сразу ввели в ступор...
Верно ли я понимаю, что для отчета SSRS , если он базируется на хранимой процедуре - можно использовать только один (первый) RecordSet?
ссылка

Reporting Services supports stored procedures that return only one set of data. If a stored procedure returns multiple result sets, only the first one is used.

В текущей архитектуре у меня часто бывает два и более вывода данных из SP , например заголовочная часть и сами данные.
Получается, если в качестве средства отчетов я выберу SSRS, то мне надо переписывать все отчёты?

Как вы с этим живёте , может быть это в последних версиях исправлено или вы юзаете 1-н отчет -> 1-хранимка или вовсе отказались от хранимок и пользуетесь select - ами (ORM средства например генерят автоматические запросы)?
Вообщем на моём первом свидании с SSRS случился конфуз, как быть? :-(
Да, все так. Давно не использовал новые версии, но в 2014-м все еще так было.

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


Как бы это помягче сказать - хммм, это же отвратительно?!
15 авг 19, 13:25    [21950052]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
medoed
Как бы это помягче сказать - хммм, это же отвратительно?!

Отвратительно возвращать из SP более одного набора, динамический набор столбцов и ещё несколько кэйсов .
15 авг 19, 13:46    [21950078]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
Ken@t
medoed
Как бы это помягче сказать - хммм, это же отвратительно?!

Отвратительно возвращать из SP более одного набора, динамический набор столбцов и ещё несколько кэйсов .

Насчёт динамики возможно. Но насчёт нескольких рекордсетов не соглашусь (Header и Data)... Зачем мне для этого делать несколько XP? Есть одна процедура которая возвращает наименование клиента например (в заголовке) , а внизу в данных остатки для него.
Ну да ладно, это всё лирика...
15 авг 19, 14:47    [21950150]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4535
medoed, да это печаль... зачастую если все N вызова используют общую тяжелую часть, то либо используется трюк с кешированием и сингл транзакшн... либо все мержится в один датасет с колоночкой sectionId и последующим растаскиванием данных
15 авг 19, 15:02    [21950169]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
buser,
Я на будущее, думаю может данные в XML складывать в процедуре, он же поддерживает иерархию данных. А, потом уже на стороне SSRS парсить XML, но это предположение, практика может показать это извратом!
15 авг 19, 15:11    [21950186]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36693
medoed,

Добавть два параметра @show_header и @show_details и делать два
15 авг 19, 15:11    [21950187]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
Гавриленко Сергей Алексеевич
medoed,

Добавть два параметра @show_header и @show_details и делать два


Да, конечно , это было бы логичным, особенно , если систему только начинаешь проектировать, но...
Получается, я свою базу и все текущие XP в ней должен подстроить под ограничения SSRS , добавляя в каждую процедуру служебные параметры. Подумаешь, перекомпилить 200 процедур для отчетов,а если ResulSet -ов несколько, то вообще песня!
15 авг 19, 15:16    [21950194]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
medoed
Гавриленко Сергей Алексеевич
medoed,

Добавть два параметра @show_header и @show_details и делать два


Да, конечно , это было бы логичным, особенно , если систему только начинаешь проектировать, но...
Получается, я свою базу и все текущие XP в ней должен подстроить под ограничения SSRS , добавляя в каждую процедуру служебные параметры. Подумаешь, перекомпилить 200 процедур для отчетов,а если ResulSet -ов несколько, то вообще песня!

Вам в любом случае делать отчеты RS, в рамках этой работы и разделением заниматься.

Как вариант - в процедуре заполнять некоторые кэширующие таблицы, с некоторым идентификатором, в процедуре в первом датасете возвращать идентификатор.
Дальше написать небольшие процедуры, которые по идентификатору будут из кэширующих таблиц просто читать данные.
Тут может быть два подхода, как эти данные потом очищать - либо в рамках определенного мэйнтенанс-плана, либо добавить отдельную процедуру, которая будет только подчищать таблицы, и в рамках выполнения отчета эту процедуру в конце вызывать.

В любом случае какого то единого подхода я не знаю.

С XML не советовал бы связываться, не помню ничего хорошего о его использовании в RS, может и ошибаюсь.
15 авг 19, 15:39    [21950236]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
Minamoto
Вам в любом случае делать отчеты RS, в рамках этой работы и разделением заниматься.

Как вариант - в процедуре заполнять некоторые кэширующие таблицы, с некоторым идентификатором, в процедуре в первом датасете возвращать идентификатор.
Дальше написать небольшие процедуры, которые по идентификатору будут из кэширующих таблиц просто читать данные.
Тут может быть два подхода, как эти данные потом очищать - либо в рамках определенного мэйнтенанс-плана, либо добавить отдельную процедуру, которая будет только подчищать таблицы, и в рамках выполнения отчета эту процедуру в конце вызывать.

В любом случае какого то единого подхода я не знаю.

С XML не советовал бы связываться, не помню ничего хорошего о его использовании в RS, может и ошибаюсь.


Вас понял, благодарю за опытные советы! Без опыта с SSRS я бы набил шишек...
15 авг 19, 15:58    [21950256]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
medoed,

в некоторых случаях можно использовать общий ненормализованный датасет, в котором будут дублироваться данные шапки в каждой строке деталей, например. Но последствия этого решения очевидны - увеличение объема данных.
15 авг 19, 16:19    [21950278]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Кстати, это еще одна причина не использовать процедуры для получения наборов данных в концепции приложения в целом. Данные должны возвращать только запросы с использованием таблиц, функций и представлений.
15 авг 19, 16:22    [21950283]     Ответить | Цитировать Сообщить модератору
 Re: SSRS and SP  [new]
medoed
Member

Откуда:
Сообщений: 902
Владислав Колосов
medoed,

в некоторых случаях можно использовать общий ненормализованный датасет, в котором будут дублироваться данные шапки в каждой строке деталей, например. Но последствия этого решения очевидны - увеличение объема данных.

Да и возможно этот способ быстрее по реализации, нежели XML, только выводиться будет медленнее и нагрузка на сеть вырастет...
15 авг 19, 16:23    [21950285]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить