New Additions to IDBSchemaRowset

Multidimensional schema rowsets are browsable by the IDBSchemaRowset interface. Consumers can get information about the available cubes, dimensions, hierarchies, levels, and members available at the data source.

The following schema objects are relevant for OLE DB for OLAP: catalogs, schemas, cubes, measures, dimensions, hierarchies, levels, members, and properties (for each dimension level).

Note   It is assumed that a multidimensional data source has catalogs, which contain schemas, which in turn contain cubes. Of course, some providers may have only catalogs or only schemas, or neither. This is no different from the TDP case.

Schema rowsets are identified by GUIDs. The following table lists these GUIDs and the columns for which restrictions can be specified on the SCHEMA rowset, for each schema object. The number of restriction columns for each SCHEMA rowset is defined as constants prefixed with CRESTRICTIONS_ in the header files. Restriction values are treated as literals rather than as search patterns.


GUID
Number of
restrictions

Restriction columns
MDSCHEMA_CUBES 3 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME
MDSCHEMA_DIMENSIONS 5 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME, DIMENSION_NAME, DIMENSION_UNIQUE_NAME
MDSCHEMA_HIERARCHIES 6 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME, DIMENSION_UNIQUE_NAME, HIERARCHY_NAME, HIERARCHY_UNIQUE_NAME
MDSCHEMA_LEVELS 7 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME, DIMENSION_UNIQUE_NAME, HIERARCHY_UNIQUE_NAME, LEVEL_NAME, LEVEL_UNIQUE_NAME
MDSCHEMA_MEASURES 5 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME, MEASURE_NAME, MEASURE_UNIQUE_NAME
MDSCHEMA_PROPERTIES 9 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME, DIMENSION_UNIQUE_NAME, HIERARCHY_UNIQUE_NAME, LEVEL_UNIQUE_NAME, MEMBER_UNIQUE_NAME, PROPERTY_NAME, PROPERTY_TYPE
MDSCHEMA_MEMBERS 12 CATALOG_NAME, SCHEMA_NAME, CUBE_NAME, DIMENSION_UNIQUE_NAME, HIERARCHY_UNIQUE_NAME, LEVEL_UNIQUE_NAME, LEVEL_NUMBER, MEMBER_NAME, MEMBER_UNIQUE_NAME,  MEMBER_CAPTION, MEMBER_TYPE, and tree operator

The provider must support the following GUIDs if the provider lists itself as an MDP in the SOURCES rowset returned by ISourcesRowset::GetSourcesRowset().

Some columns in schema rowsets are optional. If a provider does not support an optional column, it will return NULL for that column name in the schema rowset. Note that a column can be mandatory and still contain NULL under certain circumstances. For example, the NUMERIC_SCALE column of the MEASURES rowset can be NULL if the data type of the MEASURE is not DBTYPE_NUMERIC or DBTYPE_DECIMAL. Such cases are noted in the reference section.

CATALOG_NAME, SCHEMA_NAME, _GUID, and DESCRIPTION are optional for all rowsets. The following columns are also optional in schema rowsets. (All other columns are mandatory.)

Most of the OLE DB for OLAP interfaces treat measures just like any other dimension. In fact, the measures dimension appears in the DIMENSIONS rowset. The MEASURES rowset is really the MEMBERS rowset restricted by the measures dimension. It appears separately because consumers are usually interested in special information about a measure that does not necessarily apply to the members of another dimension.

If a provider does not support the concepts of catalogs or schemas, it does not support the DBSCHEMA_CATALOG and DBSCHEMA_SCHEMATA rowsets. A consumer can call IDBSchemaRowset::GetSchemas to find out which schema rowsets are supported. If the provider does not support catalogs or schemas, then specifying a restriction on either of these results in DB_E_NOTSUPPORTED.