powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS (sql2016) несколько dataset из одной процедуры
10 сообщений из 10, страница 1 из 1
SSRS (sql2016) несколько dataset из одной процедуры
    #40076599
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Есть ли возможность или как то выкрутиться из ситуации. В процедуре высчитывается и возвращается несколько темповых таблиц(набора данных). Надо все эти dataset отобразить одновременно в SSRS.
Я так понимаю по умолчанию используется первый dataset , как можно выйти из данной ситуации?
8-мь раз процедуру запускать не могу, так как она долго работает и dataset друг от друга зависят.
Спасибо!
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076654
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076663
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,
Спасибо! Я тоже находил сей ответ:

(1) Split the procedure into two separate procedures - one which returns data from EMP, and one from DEPT - and access the new procedures as two separate datasets.

(2) Union the two separate queries (with an additional column to indicate which query produced each row) and filter or conditionally format your report appropriately. The unioned query might look something like this:

SELECT EMPID ID, ENAME NAME, JOB JOB_LOC, SAL, DEPTID, 'EMP' SOURCE
FROM EMP
UNION ALL
SELECT DEPTID ID, DNAME NAME, LOC JOB_LOC, NULL SAL, DEPTID DEPTID, 'DEPT' SOURCE
FROM DEPT


1) Мне не вариант дергать несколько процедур, так как dataset друг от друга зависят.
2) Union соединять запросы тоже нет возможности они разные и писать resulset c 120 колонками обобщенными, так себе идея, да и строк тогда будет больше 100000 в итоговом dataset, что не очень хорошо для ssrs , имхо!

Я думал, вы что нибудь придумали, как обходное решение...
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076685
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed

Я думал, вы что нибудь придумали, как обходное решение...

из обходных приходит на ум только такое:

процедура, которая записывает данные в таблицы в tempdb или в вашей бд

скелет процы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
create proc test
as 
begin
	if object_id('tempdb..tbl1') is not null
		exec('drop table tempdb..tbl1')
	select 1 [n]
	into tempdb..tbl1 

	if object_id('tempdb..tbl2') is not null
		exec('drop table tempdb..tbl2')
	select 2 [k],3 [m]
	into tempdb..tbl2

	if object_id('tempdb..tbl3') is not null
		exec('drop table tempdb..tbl3')
	select 4[x],5[y],6[z]
	into tempdb..tbl3

	select * from tempdb..tbl1 
	select * from tempdb..tbl2
	select * from tempdb..tbl3 
end



в отчете в свойствах источника данных выставить "Use single transaction when processing the queries"

в первом датасете запускать процедуру

в остальных датасетах вычитывать данные из таблиц tempdb..tblX
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076692
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,
А правильно я понимаю, что таблицы при этом не будут временными (в полном понимании этого слова) и если несколько пользователей запустят отчет одновременно , то будет конфликт или ожидание пока таблицы tempdb..tbl1 не освободятся?
Я думал в этом направлении, но больше в сторону глобальных временных таблиц ##t
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076697
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed
komrad,
А правильно я понимаю, что таблицы при этом не будут временными (в полном понимании этого слова) и если несколько пользователей запустят отчет одновременно , то будет конфликт или ожидание пока таблицы tempdb..tbl1 не освободятся?
Я думал в этом направлении, но больше в сторону глобальных временных таблиц ##t

на # и ## у меня не взлетело
для реализации многопользовательности можно записывать spid писателя в tempdb..tblX
передавать его из первого датасета в параметр отчета (hidden)
в других датасетах читать из таблиц для spid = параметру отчета

ну и обыграть существование таблиц в основной процедуре (создавать или нет, чистка записей для текущего @@spid) перед занесением данных
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076700
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad,
Спасибо Вам. Я подумаю.
Представляете, если таких отчетов будет много и они будут прерываться , сколько таблиц будет лишних в базе, как база со временем за*рется!
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076711
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed
komrad,
Спасибо Вам. Я подумаю.
Представляете, если таких отчетов будет много и они будут прерываться , сколько таблиц будет лишних в базе, как база со временем за*рется!

представить можно что угодно )
как и чистку таблиц от мусора по ночам
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076726
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
medoed
komrad,
Спасибо Вам. Я подумаю.
Представляете, если таких отчетов будет много и они будут прерываться , сколько таблиц будет лишних в базе, как база со временем за*рется!

представить можно что угодно )
как и чистку таблиц от мусора по ночам

Ага , особенно когда ваша база не единственная на сервере и вы не админ, чтоб job запускать по ночам и что то в других базах drop- ать, пусть и в темповой.
...
Рейтинг: 0 / 0
SSRS (sql2016) несколько dataset из одной процедуры
    #40076746
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed,

Ок, тогда молчу, иначе ограничений окажется ещё больше.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS (sql2016) несколько dataset из одной процедуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]