Поделиться через


StrToMember (многомерные выражения)

Возвращает элемент, заданный строкой в формате многомерных выражений.

Синтаксис

StrToMember(Member_Name [,CONSTRAINED] ) 

Аргументы

  • Member_Name
    Допустимое строковое выражение, явно или неявно задающее элемент.

Замечания

Функция StrToMember возвращает элемент, заданный строковым выражением. Функция StrToMember обычно используется в определяемых пользователем функциях для передачи спецификации элемента из внешней функции обратно в инструкцию многомерных выражений или в случае, если многомерный запрос является параметризованным.

  • Когда используется флаг CONSTRAINED, имя элемента должно напрямую разрешаться в полное или неполное имя элемента. Этот флаг используется для уменьшения риска атак, использующих вставку инструкций SQL в указанную строку. Если строка не разрешается напрямую в полное или неполное имя элемента, то появляется следующее сообщение об ошибке: «Нарушены ограничения, установленные флагом CONSTRAINED функции STRTOMEMBER».

  • Когда флаг CONSTRAINED не используется, заданный элемент может быть напрямую разрешен в имя элемента или же в допустимое многомерное выражение, возвращающее имя элемента.

  • Дополнительные сведения о различиях между наборами и элементами см. в разделах «Использование выражений наборов» и «Использование выражений элементов».

Примеры

В следующем примере возвращается мера Reseller Sales Amount для элемента Bayern в иерархии атрибута State-Province, используя функцию StrToMember. Заданная строка предоставляет полное имя элемента.

SELECT {StrToMember ('[Geography].[State-Province].[Bayern]')}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]

В следующем примере возвращается мера Reseller Sales Amount для элемента Bayern, используя функцию StrToMember. Строка с именем предоставляет только неполное имя элемента, запрос возвращает первый экземпляр заданного элемента, содержащегося в иерархии Customer Geography в измерении Customer, которое не пересекается с измерением Reseller Sales. Для обеспечения ожидаемого результата рекомендуется указывать полное имя.

SELECT {StrToMember ('[Bayern]').Parent}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]

В следующем примере возвращается мера Reseller Sales Amount для элемента Bayern в иерархии атрибута State-Province, используя функцию StrToMember. Строка с именем разрешается в полное имя элемента.

SELECT {StrToMember('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]

В следующем примере возвращается сообщение об ошибке, поскольку используется флаг CONSTRAINED. Хотя предоставленное имя элемента строки, содержащее допустимое многомерное выражение, возвращает полное имя элемента, из-за флага CONSTRAINED требуется указывать полное или неполное имя элемента в строке имени.

SELECT StrToMember ('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)
ON 0
FROM [Adventure Works]