Data Source Object

OLE DB for OLAP adds a number of properties to the DBPROPSET_DATASOURCEINFO property set of a data source object. These properties give the consumer information about variations among multidimensional providers.

Property ID Description
MDPROP_FLATTENING_
SUPPORT
Type: VT_I4

Typical R/W: R

Description: Flattening Support.

If the value of this property is:

  • MDPROPVAL_FS_FULL_SUPPORT, then the provider supports flattening as described in “Flattening a Dataset to Produce a Rowset” in chapter 2.

  • MDPROPVAL_FS_GENERATED_COLUMN, then the provider supports flattening by using dummy names, as described in Chapter 2, “Lack of Support for Named Levels.”

  • MDPROPVAL_FS_GENERATED_DIMENSION, then the provider supports flattening by generating one column per dimension as described in Chapter 2, “Lack of Support for Named Levels.”

  • MDPROPVAL_FS_NO_SUPPORT, then the provider does not support flattening. For such a provider, calling ICommand::Execute with a language dialect of MDGUID_MDX and asking for the IRowset interface returns an error (E_NOINTERFACE).
MDPROP_NAMED_LEVELS Type: VT_I4

Typical R/W: R

Description: Support for named levels.

A bitmask specifying whether the provider supports named levels and/or numbered levels. Can be one or more of the following values:

  • MDPROPVAL_NL_NAMEDLEVELS, which means that the provider supports named levels.

  • MDPROPVAL_NL_NUMBEREDLEVELS, which means that the provider supports numbered levels using the LEVELS(n) function.
DBPROP_DATASOURCE_TYPE Type: VT_I4

Typical R/W: R

Description: Data source type.

If the value of this property is:

  • DBPROPVAL_DST_TDP, then it means that the provider is a tabular data provider.

  • DBPROPVAL_DST_MDP, then it means that the provider is a multidimensional provider.

  • DBPROPVAL_DST_TDPANDMDP, then it means that the provider is both a TDP and MDP.

Note that DBPROPVAL_DST_TDPANDMDP is the bitwise OR of DBPROPVAL_DST_TDP and DBPROPVAL_DST_MDP.

MDPROP_MDX_JOINCUBES Type: VT_I4

Typical R/W: R

Description: Support for query joining multiple cubes.

A bitmask that can be a combination of zero or more of the following:

  • MDPROPVAL_MJC_IMPLICITCUBE, which means that the provider supports an empty FROM clause. The cube is implicitly resolved by the axis and slicer dimensions.

  • MDPROPVAL_MJC_SINGLECUBE, which means that the provider supports only one cube in the CONTEXT clause of the MDX statement.

  • MDPROPVAL_MJC_MULTICUBES, which means that the provider supports more than one cube in the CONTEXT clause of the MDX statement.
MDPROP_AXES Type: VT_I4

Typical R/W: R

Description: Number of axes in the dataset.

The value of this property is the maximum number of axes that the provider supports in the dataset. To be compliant with OLE DB for OLAP, this value must be at least 3.

MDPROP_AGGREGATECELL_
UPDATE
Type: VT_I4

Typical R/W: R

Description: Support for updating aggregated cells.

If the value of this property is:

  • MDPROPVAL_AU_UNSUPPORTED, then it means that the provider does not support updating nonatomic cells.

  • MDPROPVAL_AU_UNCHANGED, then it means that the provider supports updating of aggregated cells, but the value of cells beneath the aggregated cell remains unchanged.

  • MDPROPVAL_AU_UNKNOWN, then it means that the provider supports updating of aggregated cells, but the value of cells beneath the aggregated cell remains undefined.
MDPROP_RANGEROWSET Type: VT_I4

Typical R/W: R

Description: Support for cell updates.

If the value of this property is:

  • MDPROPVAL_RR_NORANGEROWSET, then it means that the provider does not support IMDRangeRowset interface.

  • MDPROPVAL_RR_READONLY, then it means that the provider supports a read-only range rowset.

  • MDPROPVAL_RR_UPDATE, then it means that the provider supports an updatable range rowset.
MDPROP_MDX_SLICER Type: VT_I4

Typical R/W: R

Description: The capabilities in the WHERE clause of an MDX statement.

If the value of this property is:

  • MDPROPVAL_MS_SINGLETUPLE, it means that the provider supports only one tuple in the WHERE clause.

  • MDPROPVAL_MS_MULTIPLETUPLES, it means that the provider supports more than one tuple in the WHERE clause.
MDPROP_MDX_
OBJQUALIFICATION
Type: VT_I4

Typical R/W: R

Description: Provider’s ability to qualify a cube name.

A bitmask specifying how MD schema object names can be qualified in an MDX expression. Can be a combination of zero or more of the following:

  • MDPROPVAL_MOQ_DATASOURCE _CUBE, which means that cubes can be qualified by the data source name.

  • MDPROPVAL_MCQ_CATALOG _CUBE, which means that cubes can be qualified by the catalog name.

  • MDPROPVAL_MCQ_SCHEMA _CUBE, which means that cubes can be qualified by the schema name.

    Note   If none of the above bits are set, then the provider does not support cube qualification.

  • MDPROPVAL_MOQ_CUBE_DIM, which means that dimensions can be qualified by cube name.

  • MDPROPVAL_MOQ_DIM_HIER, which means that hierarchies can be qualified by dimension names.

  • MDPROPVAL_MOQ_DIMHIER_LEVEL, which means that levels can be qualified by the dimension name and/or hierarchy name. Note that this property applies only if named levels are supported, which can be checked by the property MDPROP_NAMED_LEVELS. If named levels are not supported then this bit must be set.

  • MDPROPVAL_MOQ_DIMHIER_MEMBER, which means that members can be qualified by a dimension name and/or a hierarchy name.

  • MDPROPVAL_MOQ_LEVEL_MEMBER, which means that members can be qualified by a level name.

  • MDPROPVAL_MOQ_MEMBER_MEMBER, which means that members can be qualified by their ancestor names.
MDPROP_MDX_
OUTERREFERENCE
Type: VT_I4

Typical R/W: R

Description: Support for outer reference in an MDX statement.

  • If the value of this property is
    • MDPROPVAL_MO_TUPLE, then it means that the provider supports tuple[.VALUE] to be qualified by a cube_name argument in an MDX statement.
MDPROP_MDX_
QUERYBYPROPERTY
Type: VT_BOOL

Typical R/W: R

Description: Support for querying by property values in an MDX statement.

MDPROP_MDX_CASESUPPORT Type: VT_I4

Typical R/W: R

Description: Support for MDX case statements.

A bitmask specifying the support in a provider for case statements. Can be a combination of zero or more of the following:

  • MDPROPVAL_MC_SIMPLECASE, which means that the provider supports a simple case statement.

  • MDPROPVAL_MC_SEARCHEDCASE, which means that the provider supports a searched case statement.
MDPROP_MDX_STRING_
COMPOP
Type: VT_I4

Typical R/W: R

Description: Support for string comparison operators other than equals and not-equals operators.

A bitmask specifying the support in a provider for string comparison operators. Can be a combination of zero or more of the following:

  • MDPROPVAL_MSC_LESSTHAN, which means that the provider supports the less-than operator.

  • MDPROPVAL_MSC_GREATERTHAN, which means that the provider supports the greater-than operator.

  • MDPROPVAL_MSC_LESSTHANEQUAL, which means that the provider supports the less-than-or-equal-to operator.

  • MDPROPVAL_MSC_GREATERTHANEQUAL, which means that the provider supports the greater-than-or-equal-to operator.
MDPROP_MDX_DESCFLAGS Type: VT_I4

Typical R/W: R

Description: Support for various <desc flag> values in the DESCENDANTS function. Can be a combination of zero or more of the following:

  • MDPROPVAL_MD_BEFORE, which means that the provider supports the flag BEFORE.

  • MDPROPVAL_MD_AFTER, which means that the provider supports the flag AFTER.

  • MDPROPVAL_MD_SELF, which means that the provider supports the flag SELF. Note that this bit must be set by all providers because support for SELF is mandatory.

Support for other desc flag values, such as SELF_AND_BEFORE, are implied by multiple bits being on.

MDPROP_MDX_SET_
FUNCTIONS
Type: VT_I4

Typical R/W: R

Description: Support for various set functions. Can be a combination of zero or more of the following:

  • MDPROPVAL_MSF_TOPPERCENT, which means that the provider supports the function TOPPERCENT.

  • MDPROPVAL_MSF_BOTTOMPERCENT, which means that the provider supports the function BOTTOMPERCENT.

  • MDPROPVAL_MSF_TOPSUM, which means that the provider supports the function TOPSUM.

  • MDPROP_MSF_BOTTOMSUM, which means that the provider supports the function BOTTOMSUM.

  • MDPROP_MSF_PERIODSTODATE, which means that the provider supports the function PERIODSTODATE.

  • MDPROP_MSF_LASTPERIODS, which means that the provider supports the function LASTPERIODS.

  • MDPROP_MSF_YTD, which means that the provider supports the function YTD.

  • MDPROP_MSF_QTD, which means that the provider supports the function QTD.

  • MDPROP_MSF_MTD, which means that the provider supports the function MTD.

  • MDPROP_MSF_WTD, which means that the provider supports the function WTD.

  • MDPROP_MSF_DRILLDOWNMEMBER, which means that the provider supports the function DRILLDOWNMEMBER.

  • MDPROP_MSF_DRILLDOWNLEVEL, which means that the provider supports the function DRILLDOWNLEVEL.

  • MDPROP_MSF_DRILLDOWNMEMBERTOP, which means that the provider supports the function DRILLDOWNMEMBERTOP.

  • MDPROP_MSF_DRILLDOWNMEMBERBOTTOM, which means that the provider supports the function DRILLDOWNMEMBERBOTTOM.

  • MDPROP_MSF_DRILLDOWNLEVELTOP, which means that the provider supports the function DRILLDOWNLEVELTOP.

  • MDPROP_MSF_DRILLDOWNLEVELBOTTOM, which means that the provider supports the function DRILLDOWNLEVELBOTTOM.

  • MDPROP_MSF_DRILLUPMEMBER, which means that the provider supports the function DRILLUPMEMBER.

  • MDPROP_MSF_DRILLUPLEVEL, which means that the provider supports the function DRILLUPLEVEL.

  • MDPROPVAL_MSF_TOGGLEDRILLSTATE, which means that the provider supports the function TOGGLEDRILLSTATE.
MDPROP_MDX_MEMBER_
FUNCTIONS
Type: VT_I4

Typical R/W: R

Description: Support for various member functions. Can be a combination of zero or more of the following:

  • MDPROPVAL_MMF_COUSIN, which means that the provider supports the function COUSIN.

  • MDPROPVAL_MMF_PARALLELPERIOD, which means that the provider supports the function PARALLELPERIOD.

  • MDPROPVAL_MMF_OPENINGPERIOD, which means that the provider supports the function OPENINGPERIOD.

  • MDPROP_MMF_CLOSINGPERIOD, which means that the provider supports the function CLOSINGPERIOD.
MDPROP_MDX_NUMERIC_
FUNCTIONS
Type: VT_I4

Typical R/W: R

Description: Support for various numeric functions. Can be a combination of zero or more of the following:

  • MDPROPVAL_MNF_MEDIAN, which means that the provider supports the function MEDIAN.

  • MDPROPVAL_MNF_VAR, which means that the provider supports the function VAR.

  • MDPROPVAL_MNF_STDDEV, which means that the provider supports the function STDDEV.

  • MDPROP_MNF_RANK, which means that the provider supports the function RANK.

  • MDPROPVAL_MNF_AGGREGATE, which means that the provider supports the function AGGREGATE.

  • MDPROPVAL_MNF_COVARIANCE, which means that the provider supports the function COVARIANCE.

  • MDPROPVAL_MNF_CORRELATION, which means that the provider supports the function CORRELATION.

  • MDPROP_MNF_LINREGSLOPE, which means that the provider supports the function LINREGSLOPE.

  • MDPROPVAL_MNF_LINREGVARIANCE, which means that the provider supports the function LINREGVARIANCE.

  • MDPROPVAL_MNF_LINREG2, which means that the provider supports the function LINREG2.

  • MDPROPVAL_MNF_LINREGPOINT, which means that the provider supports the function LINREGPOINT.
MDPROP_MDX_FORMULAS Type: VT_I4

Typical R/W: R

Description: Support for creation of named sets and calculated members. Can be a combination of zero or more of the following:

  • MDPROPVAL_MF_WITH_CALCMEMBERS, which means that the provider supports the creation of calculated members by using the WITH clause before a SELECT.

  • MDPROPVAL_MF_WITH_NAMEDSETS, which means that the provider supports the creation of named sets by using the WITH clause before a SELECT.

  • MDPROPVAL_MF_CREATE_CALCMEMBERS, which means that the provider supports the creation of named calculated members by using the CREATE clause.

  • MDPROPVAL_MF_CREATE_NAMEDSETS, which means that the provider supports the creation of named sets by using the CREATE clause.

  • MDPROPVAL_MF_SCOPE_SESSION, which means that the provider supports the scope value of SESSION during the creation of named sets and calculated members.

  • MDPROPVAL_MF_SCOPE_GLOBAL, which means that the provider supports the scope value of GLOBAL during the creation of named sets and calculated members.
MDPROP_MDX_NONMEASURE_
EXPRESSONS
Type: VT_I4

Typical R/W: R

Description: The capabilities in the numeric_value_expression argument of set functions.

If the value of this property is:

  • MDPROPVAL_MNE_MEASURESONLY, then it means that the provider supports only expressions involving measure dimension members.

  • MDPROPVAL_MNE_ALLDIMENSIONS, then it means that the provider supports expressions involving members from any dimension.

For example, say Revenue and Cost are measures, and USA is a member of Geography dimension. In this case, in set functions that take a numeric_value_expression argument, expressions such as Revenue/3 and (Revenue - Cost)/Cost*100 are made of measures only. However, in expressions such as (USA, Sales)/3 are made of measures and nonmeasures.