Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
есть multivalue параметр отчета, хочу использовать в процедуре типа : ... in (parametr_value1, parametr_value2 , ..., parametr_valueN).... как можно передать multi-value парамерт отчета в параметр процедуры ? он передается как строка, массив, еще как-то ? как его обрабатывать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 10:53 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
В данном случае значения конкатенируются в строку (CSV) --- This posting is provided "AS IS" with no warranties, and confers no rights. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 02:55 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
странно. есть процедура : alter procedure airat_test @param varchar as begin select @param as id end то есть что на входе , то и на выходе. передаю ей multi-value параметр типа string. выбираю несколько значение параметра и в превью мне выдается: Must declare scalar variable "@param" процедура его есть не хочет :) когда выбираюв одно значение , все ок. в чем может быть проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 15:50 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Я изменил вашу SP на alter procedure airat_test @param varchar (100) as begin select @param as id end Возвращается то, что нужно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. This posting is provided "AS IS" with no warranties, and confers no rights. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 01:09 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
хм...думаю не в varchar(100) дело. скопипастил Ваш отчет и процедуру - та же ошибка :( её удалось решить введением еще одного параметра отчета parametr=join(Parameters!param.Value,", ") но может как-нибудь без этих извратов можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 15:19 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Давайте уточнять - версии SQL Server'a, Report Server'a и т.д. У меня все работает без ухищрений, на SQL 2005 RTM. --- This posting is provided "AS IS" with no warranties, and confers no rights. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 22:39 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Microsoft SQL Server Developer Edition Version: 9.00.1399.06 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2006, 10:15 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Добрый день. У меня таже проблема, мне надо использовать multi-value параметр в сохраненной процедуре. Я прочитала ваш диалог, но все же не поняла как это сделать..... опишите пожалуйста по-подробней... плз..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 16:41 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Есть multivalue параметр отчета @parametr. Создается параметр отчета @parametr1 типа string, ему присваивается значение =join(Parameters!parametr.Value,", "), то есть значения параметра parametr разделенные через запятую. @parametr1 передается в процедуру, в который используется динамический SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 18:29 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
И все же у меня не получается, не выдается никакой ошибки но и отбор не идет по параметру.... и еще 2 параметр, который я внесла для передачи в процедуру тоже выноситься на обозрение пользователю, можно ли его убрать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 15:09 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
А процедура как выглядит? "и еще 2 параметр, который я внесла для передачи в процедуру тоже выноситься на обозрение пользователю, можно ли его убрать?" - поставить в свойствах этого параметра галочку напротив hidden ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 15:24 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
процедурка выглядит так: CREATE PROCEDURE [dbo].[ERP_SaleAndReturn] @Company char(3), @StartDate dateTime, @EndDate dateTime, @Zones varchar AS CREATE TABLE #TmpSale ( [Код заказа] CHAR(20), [Вид операции] CHAR(6), ..................... Сумма REAL, Валюта CHAR(3) ) INSERT #TmpSale SELECT dbo.INVENTTRANS.TRANSREFID AS [Код заказа], ........................................... FROM ...................................... WHERE (dbo.INVENTTRANS.TRANSTYPE = 0) ............... AND (derivedtbl_2.Зона IN (@Zones) OR derivedtbl_2.Зона = '') GROUP BY ................... SELECT * FROM #TMPSale DROP TABLE #TmpSale GO ------------------------------------------------------------------------ надеюсь понятно..... параметр @Zones и есть интересующий меня параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 17:30 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Надо использовать динамический sql. Попробуй так: CREATE PROCEDURE [dbo].[ERP_SaleAndReturn] @Company char(3), @StartDate dateTime, @EndDate dateTime, @Zones varchar(100) AS BEGIN DECLARE @SQLString NVARCHAR(3000); DECLARE @ParmDefinition NVARCHAR(1000); SET @SQLString = N' CREATE TABLE #TmpSale ( [Код заказа] CHAR(20), [Вид операции] CHAR(6), ..................... Сумма REAL, Валюта CHAR(3) ) INSERT #TmpSale SELECT dbo.INVENTTRANS.TRANSREFID AS [Код заказа], ........................................... FROM ...................................... WHERE (dbo.INVENTTRANS.TRANSTYPE = 0) ............... AND (derivedtbl_2.Зона IN ('+@Zones+') OR derivedtbl_2.Зона = '''') GROUP BY ................... SELECT * FROM #TMPSale DROP TABLE #TmpSale ' SET @ParmDefinition = N'@Company char(3),@StartDate dateTime,@EndDate dateTime,@Zones varchar'; EXECUTE sp_executesql @SQLString, @ParmDefinition, @Company char(3),@StartDate=@StartDate,@EndDate=@EndDate,@Zones=@Zones; END; Причем в тексте процедуры все кавычки удваиваются , т.е. вместо ' пишем '' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 10:38 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Ошибочка вышла. Так надо: CREATE PROCEDURE [dbo].[ERP_SaleAndReturn] @Company char(3), @StartDate dateTime, @EndDate dateTime, @Zones varchar(100) AS BEGIN DECLARE @SQLString NVARCHAR(3000); DECLARE @ParmDefinition NVARCHAR(1000); SET @SQLString = N' CREATE TABLE #TmpSale ( [Код заказа] CHAR(20), [Вид операции] CHAR(6), ..................... Сумма REAL, Валюта CHAR(3) ) INSERT #TmpSale SELECT dbo.INVENTTRANS.TRANSREFID AS [Код заказа], ........................................... FROM ...................................... WHERE (dbo.INVENTTRANS.TRANSTYPE = 0) ............... AND (derivedtbl_2.Зона IN ('+@Zones+') OR derivedtbl_2.Зона = '''') GROUP BY ................... SELECT * FROM #TMPSale DROP TABLE #TmpSale ' SET @ParmDefinition = N'@Company char(3),@StartDate dateTime,@EndDate dateTime,@Zones varchar(100)'; EXECUTE sp_executesql @SQLString, @ParmDefinition, @Company=@Company ,@StartDate=@StartDate,@EndDate=@EndDate,@Zones=@Zones; END; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 11:21 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
и все таки как использовать multi value в хранимой процедуре? ALTER PROCEDURE [dbo].[sssss] @Проба int AS BEGIN SELECT * FROM table WHERE (Jornal.proba in (''+@Проба+'')) и так пробывал (Jornal.proba in ('+@Проба+')) END Все равно выдает ошибку: Error converting data type nvarchar to int Использую RS2005 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 11:58 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
minya13_85 в последнем посте a!rat дан один из вариантов. 1. Использовать динамический sql 2. Использовать табличную функцию. Ну и наконец, у Вас @Проба int а должно быть Varchar(n) зависит от того, сколь длинная у Вас строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 13:10 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
shady minya13_85 в последнем посте a!rat дан один из вариантов. 1. Использовать динамический sql 2. Использовать табличную функцию. Ну и наконец, у Вас @Проба int а должно быть Varchar(n) зависит от того, сколь длинная у Вас строка. так строка у меня короткая всего 3 цифры: 585, 750, 925,950. А как мне использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 14:09 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
shady minya13_85 в последнем посте a!rat дан один из вариантов. 1. Использовать динамический sql 2. Использовать табличную функцию. Ну и наконец, у Вас @Проба int а должно быть Varchar(n) зависит от того, сколь длинная у Вас строка. Я бы сделал это просто запросом не используя процедуры, но я использую временную таблицу, и мне нужен обязательно параметр мульти на переменной! Как мне быть подскажите пожалуйста?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 14:17 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
[quot minya13_85]и все таки как использовать multi value в хранимой процедуре? Create FUNCTION [dbo].[MultiValue2Table] ( @REGION VARCHAR(5000) ) RETURNS @outer TABLE ( strin varCHAR(1000) ) AS BEGIN DECLARE @I INT ,@pozi int,@pozf int SET @I=0 Set @pozi=0 set @pozf=Charindex(',',@Region) while @Region like'%,%' begin INSERT into @outer VALUES(substring(@Region,(@pozi),(@pozf))) set @region=substring(@Region,(@pozf+1),(len(@Region)-(@pozf))) set @pozi=0 set @Pozf=Charindex(',',@Region) end INSERT into @outer VALUES(@Region) RETURN END ALTER PROCEDURE [dbo].[sssss] @Проба int AS BEGIN SELECT * FROM table WHERE (Jornal.proba in (select * from [dbo].[MultiValue2Table] (@Проба'))) END Ia kakto tak delaiu.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2008, 18:49 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
minya13_85 shady minya13_85 в последнем посте a!rat дан один из вариантов. 1. Использовать динамический sql 2. Использовать табличную функцию. Ну и наконец, у Вас @Проба int а должно быть Varchar(n) зависит от того, сколь длинная у Вас строка. так строка у меня короткая всего 3 цифры: 585, 750, 925,950. А как мне использовать? Понимаете, SQL Server 2005 не может принимать в качестве параметра массив или датасет. Поэтому что для вас 3 цифры, для sql server это строка. И Multi-Value параметр из отчета в хранимку передается как строка состоящая из символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2008, 10:08 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
a!ratхм...думаю не в varchar(100) дело. скопипастил Ваш отчет и процедуру - та же ошибка :( её удалось решить введением еще одного параметра отчета parametr=join(Parameters!param.Value,", ") но может как-нибудь без этих извратов можно? Всем здрасьте.. у меня та же самая проблема...Есть хранимая процедура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. В этой процедуре используется табличная функция [Proba_Vibor] Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Версия SQL: Код: plaintext В Reporting Services 2005. передаю эту процедуру. Т.е. в command type Выбираю text И в датасете прописываю Код: plaintext А когда в command type выбираю: StoredProcedure и в датасете прописываю просто Код: plaintext Но тип StoredProcedure я не могу выбирать..т.к. у меня несколько процедур и они все исполняются по некоторому параметру..т.е. в датасете прописано: Код: plaintext 1. 2. 3. Я так понял RS2005 по-разному трактует одну и ту же процедуру..когда прописываю Exec почему-то она не хочет есть табличную функцию мою, а когда выбираю тип процедура и прописываю просто Sklad, процедура срабатывает даже при выборе нескольких параметров. от чего это может зависеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 14:21 |
|
||
|
[RS 2005] multi-value parametr & stored procedure
|
|||
|---|---|---|---|
|
#18+
Вопрос снят.. Линк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=35420424&tid=1535798]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 119ms |

| 0 / 0 |
