StrToMember (MDX)
多次元式 (MDX) 形式の文字列で指定されたメンバーを返します。
構文
StrToMember(Member_Name [,CONSTRAINED] )
引数
Member_Name
メンバーを直接または間接的に指定する有効な文字列式。
解説
StrToMember 関数は、文字列式で指定されたメンバーを返します。 StrToMember 関数は、通常、外部関数から MDX ステートメントにメンバー指定を返すために、または MDX クエリがパラメーター化されるときに、ユーザー定義関数と共に使用されます。
CONSTRAINED フラグを使用するときは、メンバー名には修飾されているメンバー名または修飾されていないメンバー名に直接解決できる文字列を指定する必要があります。 このフラグは、指定された文字列を介したインジェクション攻撃のリスクを軽減するために使用されます。 修飾されているメンバー名または修飾されていないメンバー名に直接解決できない文字列を指定すると、"STRTOMEMBER 関数の CONSTRAINED フラグによって設定された制限に違反しました。" というエラーが表示されます。
CONSTRAINED フラグを使用しない場合、メンバー名に直接解決されるメンバーも、名前に解決される MDX 式に解決されるメンバーも指定できます。
セットとメンバーの違いを理解するには、「Set Expressions の使用」と「メンバー式の使用」を参照してください。
例
次の例では、 StrToMember 関数を使用して、State-Province属性階層のバイエル メンバーの Reseller Sales Amount メジャーを返します。 文字列の指定により、修飾されているメンバー名が指定されています。
SELECT {StrToMember ('[Geography].[State-Province].[Bayern]')}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
次の例では、 StrToMember 関数を使用して、バイエル メンバーの Reseller Sales Amount メジャーを返します。 メンバー名文字列には修飾されていないメンバー名のみを指定したので、クエリは指定メンバーの最初のインスタンスを返します。この最初のインスタンスは、Reseller Sales と交差しない Customer ディメンションの Customer Geography 階層にあります。 ベスト プラクティスでは、期待される結果を確保するために修飾名を指定することが規定されています。
SELECT {StrToMember ('[Bayern]').Parent}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
次の例では、 StrToMember 関数を使用して、State-Province属性階層のバイエル メンバーの Reseller Sales Amount メジャーを返します。 指定されたメンバー名文字列は、修飾メンバー名に解決されます。
SELECT {StrToMember('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)}
ON 0,
{[Measures].[Reseller Sales Amount]} ON 1
FROM [Adventure Works]
次の例では、CONSTRAINTED フラグが原因でエラーが返されます。 指定されたメンバー名文字列には、修飾メンバー名に解決される有効な MDX メンバー式が含まれていますが、CONSTRAINTED フラグには、メンバー名文字列に修飾メンバー名または非修飾メンバー名が必要です。
SELECT StrToMember ('[Geography].[Geography].[Country].[Germany].FirstChild', CONSTRAINED)
ON 0
FROM [Adventure Works]