从多值参数中检查多个值时,SSRS两次转义单引号

时间:2013-01-04 10:04:34

标签: reporting-services ssrs-2008

我正在使用SSRS 2008 R2。并且发现在我看来是一个错误的情况。

我有一个共享数据集 -

SELECT 'value1' AS Value
UNION
SELECT 'value''2'

我将此DS绑定到多值参数。当我从多值下拉列表中仅检查值'2时 - 我看到在SQL事件探查器中传递了这样的参数

@Value=N'value''2' -- Two single quotes

当我在分析器中检查两个值时,我看到了

@Value=N'value1,value''''2' -- Four single quotes

我的程序正确处理了第一个案件。

在我看来,逃避发生了两次 - 首先是每个值,第二个是整个字符串?

有谁知道这种行为的来源,Thx提前!

Here is the same thread on MS

1 个答案:

答案 0 :(得分:6)

我遇到了一个非常类似的问题 - 正如您所见,最奇怪的部分是,当选择一个参数但不适用于多个参数时,它可以工作。

无论如何,我通过稍微不同地将参数传递给存储过程来解决这个问题 - 在数据集的Parameters部分中使用以下表达式:

=Join(Parameters!Value.Value, ",")根据需要替换您的参数名称。

这实际上仍会传递相同的逗号分隔值,但由于某种原因似乎正确处理引号。