SSRS - 违反了STRTOSET功能中CONSTRAINED标志所施加的限制

时间:2017-09-20 03:03:46

标签: reporting-services mdx cube ssrs-2016

我是SSRS的新手,我使用三个参数FromDimDateDateKey,ToDimDateDateKey和InstrumentSName进行报告,我收到错误,查询执行失败,我的DataSet和查询(1,343)STRTOSET函数中CONSTRAINED标志所施加的限制是侵犯。我该怎么办 ?有人可以帮帮我吗?

这是我的MDX查询:

SELECT 
NON EMPTY { [Measures].[Price] } ON COLUMNS,
NON EMPTY { 
    (
        [DimDate].[Date Key].[Date Key].ALLMEMBERS *
        [Dim Instrument].[Instrument Code].[Instrument Code].ALLMEMBERS *
        [Dim Instrument].[Instrument S Name].[Instrument S Name].ALLMEMBERS 
    ) 
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_VALUE, MEMBER_UNIQUE_NAME ON ROWS 
FROM( 
    SELECT(
        STRTOSET(
            @DimInstrumentInstrumentSName,
            CONSTRAINED
        )
    ) ON COLUMNS
    FROM(
        SELECT(
            STRTOMEMBER(@FromDimDateDateKey, CONSTRAINED):
            STRTOMEMBER(@ToDimDateDateKey, CONSTRAINED) 
        ) ON COLUMNS 
        FROM [CUBE_SIAPDW]
    )
) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

1 个答案:

答案 0 :(得分:1)

它告诉你这已经失败了:

STRTOSET(
            @DimInstrumentInstrumentSName,
            CONSTRAINED
        )

如果您签出了strtosethttps://docs.microsoft.com/en-us/sql/mdx/strtoset-mdx

的文档

它说CONSTRAINED是可选的,并且:

  

使用CONSTRAINED标志时,设置规范必须包含   限定或不合格的成员名称或一组包含的元组   括号{}括起来的限定或不合格的成员名称。这面旗帜   用于通过指定的方式降低注射攻击的风险   串。如果提供的字符串无法直接解析   限定或不合格的成员名称,出现以下错误:   " STRTROSET标志在STRTOSET中施加的限制   功能被违反了。"

因此,如果使用约束,则参数@DimInstrumentInstrumentSName将需要是这样的字符串 - 请注意大括号:

'{[Geography].[Geography].[Country].[Germany],[Geography].[Geography].[Country].[Canada]}'