powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Использование sp_executesql в SQL Server Reporting Services
7 сообщений из 32, страница 2 из 2
Использование sp_executesql в SQL Server Reporting Services
    #33769878
a!rat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
/topic/266672&hl=
...
Рейтинг: 0 / 0
Использование sp_executesql в SQL Server Reporting Services
    #33769900
Фотография byverka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tacitСам недавно столкнулся с такой проблемой. Решил по "рабоче-крестьянски". В запросе (DataSet) передаю в процедуру параметр типа varchar. Например, @MultiValueString. Сам параметр не декларируется в запросе. RS designer при этом создает параметр отчета MultiValueString. Делаем его скрытым (hiden) и присваиваем ему дефолтое значение через функцию Join(...), которая выпрямляет выбранные значения множественного параметра в одну строку c указанным разделителем. И все. Естественно, в процедуре используется динамический запрос (exec sp_executesql @cmd).

Спасибо за еще одну интересную мысль :)
Просто опять же, мне нельзя использовать в дата сете непосредственно SELECT, все обращения к серверу нужно обернуть в хранимые процедуры!
...
Рейтинг: 0 / 0
Использование sp_executesql в SQL Server Reporting Services
    #33769914
tacit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
byverka tacitСам недавно столкнулся с такой проблемой. Решил по "рабоче-крестьянски". В запросе (DataSet) передаю в процедуру параметр типа varchar. Например, @MultiValueString. Сам параметр не декларируется в запросе. RS designer при этом создает параметр отчета MultiValueString. Делаем его скрытым (hiden) и присваиваем ему дефолтое значение через функцию Join(...), которая выпрямляет выбранные значения множественного параметра в одну строку c указанным разделителем. И все. Естественно, в процедуре используется динамический запрос (exec sp_executesql @cmd).

Спасибо за еще одну интересную мысль :)
Просто опять же, мне нельзя использовать в дата сете непосредственно SELECT, все обращения к серверу нужно обернуть в хранимые процедуры!
Ну а конструкцию типа:
insert into #t1
exec usp_Report @MultiValueString
select * from #t1
тоже нельзя?
Формально есть select, но ведь вся выборка данных в процедуре?
...
Рейтинг: 0 / 0
Использование sp_executesql в SQL Server Reporting Services
    #33770015
Игорь Оробчук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
byverkaПросто опять же, мне нельзя использовать в дата сете непосредственно SELECT, все обращения к серверу нужно обернуть в хранимые процедуры!
Странное требование. Безопасность?
Вообще-то по правильному должна быть семантичекая модель данных, из которой стоятся отчеты. Модель может брать данные из вьюх. И из табличных функций (прямо или через вьюхи). Потому права можно обрезать начиная с вьюх с функциями и заканчивая сущностями модели - там все достаточно гибко. Это так, инфа к размышлению.
...
Рейтинг: 0 / 0
Использование sp_executesql в SQL Server Reporting Services
    #33771125
Фотография byverka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tacit byverka tacitСам недавно столкнулся с такой проблемой. Решил по "рабоче-крестьянски". В запросе (DataSet) передаю в процедуру параметр типа varchar. Например, @MultiValueString. Сам параметр не декларируется в запросе. RS designer при этом создает параметр отчета MultiValueString. Делаем его скрытым (hiden) и присваиваем ему дефолтое значение через функцию Join(...), которая выпрямляет выбранные значения множественного параметра в одну строку c указанным разделителем. И все. Естественно, в процедуре используется динамический запрос (exec sp_executesql @cmd).

Спасибо за еще одну интересную мысль :)
Просто опять же, мне нельзя использовать в дата сете непосредственно SELECT, все обращения к серверу нужно обернуть в хранимые процедуры!
Ну а конструкцию типа:
insert into #t1
exec usp_Report @MultiValueString
select * from #t1
тоже нельзя?
Формально есть select, но ведь вся выборка данных в процедуре?
Попробую сделать так, но у меня сейчас одна проблемма - в теле процедуры у меня сравнивается поле типа int со строкой, которую мы получаем после распарсивания multi параметра. В ответ на запуск моей процедуры получаю ругань.
Еще раз всем огромное спасибо за советы, почти все перепробовала, попробую еще разок может что сама наколдую!
...
Рейтинг: 0 / 0
Использование sp_executesql в SQL Server Reporting Services
    #33774506
Фотография byverka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот эта идея сработала безотказно:

авторЕсть multivalue параметр отчета @parametr. Создается параметр отчета @parametr1 типа string, ему присваивается значение =join(Parameters!parametr.Value,", "), то есть значения параметра parametr разделенные через запятую. @parametr1 передается в процедуру, в который используется динамический SQL.

Просто классно ))) всем спасибо за разные идеи! Многие из них помогли в других ситуациях!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Использование sp_executesql в SQL Server Reporting Services
    #35115694
sqluru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А меня другая проблема. Есть @Var1 и @Var2 - оба multi-value параметры ну и SQL запускает

select Col1, Col2, Max(Col3) from table1 with (nolock)
WHERE Col1 IN (@Var1)
and Col2 IN (@Var1)
Group By Col1, Col12


Всё бы хорошо, но когда я выбираю (Select All) для параметра/ов он всё равно выполняет IN statement, и получaется медленно, потому как каждое значение подставляется в IN ('value1', 'value2', 'value', ....), а бы хотелось чтобы запускал:

select Col1, Col2, Max(Col3) from table1 with (nolock)
Group By Col1, Col12


Вопрос тут, есть ли прособ программно определить, что (Select All) выбран чтобы выключать IN?

Спасибо
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Использование sp_executesql в SQL Server Reporting Services
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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