|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
Добрый день! Есть ли возможность или как то выкрутиться из ситуации. В процедуре высчитывается и возвращается несколько темповых таблиц(набора данных). Надо все эти dataset отобразить одновременно в SSRS. Я так понимаю по умолчанию используется первый dataset , как можно выйти из данной ситуации? 8-мь раз процедуру запускать не могу, так как она долго работает и dataset друг от друга зависят. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 13:22 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
medoed, вопрос не нов https://stackoverflow.com/questions/9310736/multiple-datasets-from-stored-procedure-in-ssrs ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 15:45 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
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 , имхо! Я думал, вы что нибудь придумали, как обходное решение... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 16:10 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
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.
в отчете в свойствах источника данных выставить "Use single transaction when processing the queries" в первом датасете запускать процедуру в остальных датасетах вычитывать данные из таблиц tempdb..tblX ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 17:08 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
komrad, А правильно я понимаю, что таблицы при этом не будут временными (в полном понимании этого слова) и если несколько пользователей запустят отчет одновременно , то будет конфликт или ожидание пока таблицы tempdb..tbl1 не освободятся? Я думал в этом направлении, но больше в сторону глобальных временных таблиц ##t ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 17:21 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
medoed komrad, А правильно я понимаю, что таблицы при этом не будут временными (в полном понимании этого слова) и если несколько пользователей запустят отчет одновременно , то будет конфликт или ожидание пока таблицы tempdb..tbl1 не освободятся? Я думал в этом направлении, но больше в сторону глобальных временных таблиц ##t на # и ## у меня не взлетело для реализации многопользовательности можно записывать spid писателя в tempdb..tblX передавать его из первого датасета в параметр отчета (hidden) в других датасетах читать из таблиц для spid = параметру отчета ну и обыграть существование таблиц в основной процедуре (создавать или нет, чистка записей для текущего @@spid) перед занесением данных ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 17:42 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
komrad, Спасибо Вам. Я подумаю. Представляете, если таких отчетов будет много и они будут прерываться , сколько таблиц будет лишних в базе, как база со временем за*рется! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 17:52 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
medoed komrad, Спасибо Вам. Я подумаю. Представляете, если таких отчетов будет много и они будут прерываться , сколько таблиц будет лишних в базе, как база со временем за*рется! представить можно что угодно ) как и чистку таблиц от мусора по ночам ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 18:09 |
|
SSRS (sql2016) несколько dataset из одной процедуры
|
|||
---|---|---|---|
#18+
komrad medoed komrad, Спасибо Вам. Я подумаю. Представляете, если таких отчетов будет много и они будут прерываться , сколько таблиц будет лишних в базе, как база со временем за*рется! представить можно что угодно ) как и чистку таблиц от мусора по ночам Ага , особенно когда ваша база не единственная на сервере и вы не админ, чтоб job запускать по ночам и что то в других базах drop- ать, пусть и в темповой. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2021, 18:39 |
|
|
start [/forum/topic.php?fid=31&gotonew=1&tid=1532765]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 279ms |
total: | 447ms |
0 / 0 |