Переменные и параметры (многомерные выражения)

Службы Microsoft SQL Server Службы Analysis Services позволяют задавать параметры для инструкций многомерных выражений. Благодаря параметризации можно создавать универсальные инструкции, настраиваемые во время выполнения.

Имена параметров при создании параметризованных инструкций обозначаются префиксом «@». Например, @Year является допустимым именем параметра.

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

В следующем примере XMLA-запроса параметр @CountryName содержит страну, для которой извлекаются пользовательские данные.

<Envelope xmlns="https://schemas.xmlsoap.org/soap/envelope/">
  <Body>
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
        <Statement>
select [Measures].members on 0, 
       Filter(Customer.[Customer Geography].Country.members, 
              Customer.[Customer Geography].CurrentMember.Name =
              @CountryName) on 1
from [Adventure Works]
</Statement>
      </Command>
      <Properties />
      <Parameters>
        <Parameter>
          <Name>CountryName</Name>
          <Value>'United Kingdom'</Value>
        </Parameter>
      </Parameters>
    </Execute>
  </Body>
</Envelope>

В OLE DB эти возможности доступны через интерфейс ICommandWithParameters. В ADOMD.Net для этого необходимо использовать коллекцию AdomdCommand.Parameters .