DISCOVER_SCHEMA_ROWSETS 行集
当使用 RequestType 参数中的 DISCOVER_SCHEMA_ROWSETS 枚举值调用 Discover 方法时,它将在 Result 参数中返回 DISCOVER_SCHEMA_ROWSETS 行集。这种请求类型将检索提供程序支持的所有 RequestTypes 枚举值的列表。
| 列名称 |
类型 |
说明 |
限制 |
是否可以为空 |
| SchemaName |
string |
架构/请求的名称。它将在 RequestTypes 枚举中返回值,包括提供程序支持的所有其它类型。提供程序将为其它类型定义行集结构。 |
是 |
否 |
| Restrictions |
array |
提供程序支持的限制数组。示例在本表后面。 |
否 |
是 |
| Description |
string |
对架构的说明,可以本地化。 |
否 |
是 |
对于支持对 DBSCHEMA_MEMBERS 架构行集实行三种限制的提供程序来说,限制数组中返回的结果可能类似于以下示例。元素是指架构中的列名称。
<Restrictions>
<RestrictionList>
<CATALOG_NAME type="string" />
<SCHEMA_NAME type="string" />
<CUBE_NAME type="string" />
</RestrictionList>
</Restrictions>
下表给出了 XML for Analysis 表格数据提供程序和多维数据提供程序所要求的 OLE DB 架构行集。在一些情况下,架构行集中的某些列( 是 OLE DB for OLAP 提供程序所要求的列)对于 XML for Analysis 提供程序来说,是可选的。在下表中,这些可选的架构行集都用星号 (*) 标示出来;可选列的详细信息列在本表的后面。
| OLE DB 架构行集 |
要求的提供程序 |
说明 |
| DBSCHEMA_CATALOGS |
TDP、MDP、DMP |
可用于提供程序服务器实例的目录 |
| DBSCHEMA_COLUMNS |
TDP、DMP |
对表的列的枚举 |
| DBSCHEMA_PROVIDER_TYPES |
TDP、DMP |
对提供程序支持的基本数据类型的枚举 |
| DBSCHEMA_TABLES |
TDP、DMP |
对目录中表的枚举 |
| DBSCHEMA_TABLES_INFO |
TDP、DMP |
对目录中表的枚举 |
| MDSCHEMA_ACTIONS |
MDP |
对可用操作的枚举 |
| MDSCHEMA_CUBES |
MDP |
对目录中多维数据集的枚举 |
| MDSCHEMA_DIMENSIONS |
MDP |
对所有多维数据集维的枚举 |
| MDSCHEMA_FUNCTIONS* |
MDP |
对提供程序支持的 MDX 函数的枚举 |
| MDSCHEMA_HIERARCHIES* |
MDP |
对所有维中层次结构的枚举 |
| MDSCHEMA_MEASURES |
MDP |
对所有多维数据集中值的枚举 |
| MDSCHEMA_MEMBERS* |
MDP |
对所有多维数据集的所有维中的所有成员的枚举 |
| MDSCHEMA_PROPERTIES* |
MDP |
对可用于单元格和成员的用户定义的属性的枚举 |
| MDSCHEMA_SETS |
MDP |
对目录中可用集的枚举。 |
上表中用星号 (*) 标记的架构行集具有这样一些列:这些列虽然对于 OLE DB for OLAP 提供程序来说是必需的,但对于 XML for Analysis 提供程序来说,则是可选的。这些可选列列在下表中。
| OLE DB 架构行集 |
OLE DB 要求的但对于
XML for Analysis 提供程序来说为可选的列 |
| MDSCHEMA_FUNCTIONS |
ORIGIN、INTERFACE_NAME |
| MDSCHEMA_HIERARCHIES |
STRUCTURE |
| MDSCHEMA_MEMBERS |
LEVEL_UNIQUE_NAME、LEVEL_NUMBER、PARENT_LEVEL |
| MDSCHEMA_PROPERTIES |
LEVEL_UNIQUE_NAME |
XML for Analysis MDP 提供程序并不要求 OLE DB for OLAP 的 MDSCHEMA_LEVELS 架构行集,虽然提供程序可以有选择地支持它。这样,引用其它架构行集中级别的列也就变成可选的了,如上所述。这是因为,不同的多维提供程序在使用术语“级别”时,其意义是不同的(某些提供程序从上到下进行编号,而另一些则从下到上进行编号)。在本规范以后的版本中,将会添加更多各级别的架构行集。
DISCOVER_ENUMERATORS 行集
当 使用 RequestType 参数中的 DISCOVER_ENUMERATORS 枚举值调用Discover 方法时,它将在 Result 参数中返回 DISCOVER_ENUMERATORS 行集。这种请求类型将查询提供程序支持的枚举器,包括数据类型和值。通过支持这种请求,提供程序将发布它可以识别的所有枚举常量。
每个枚举器都有多个元素,各元素都对应枚举中的一个值。表示这种情况的行集都是平面的,对于属于同一枚举的各元素,枚举器的名称可能会重复。
| 列名称 |
类型 |
说明 |
限制 |
是否可以为空 |
| EnumName |
string |
包含一系列值的枚举器的名称。 |
是,当作数组对待 |
否 |
| EnumDescription |
string |
对枚举器的说明,可以本地化。 |
否 |
是 |
| EnumType |
string |
枚举值的数据类型。 |
否 |
否 |
| ElementName |
string |
枚举器集中一个值元素的名称。
示例:TDP
|
否 |
否 |
| ElementDescription |
string |
对元素的说明(可选),可以本地化。 |
否 |
是 |
| ElementValue |
string |
元素的值。
示例:01
|
否 |
是 |
DISCOVER_KEYWORDS 行集
当使用 RequestType 参数中的 DISCOVER_KEYWORDS 枚举值调用 Discover 方法时,它将在 Result 参数中返回 DISCOVER_KEYWORDS 行集。这种请求类型将列出提供程序保留的关键字。
每个返回的关键字都是 DISCOVER_KEYWORDS 行集中的一行。
| 列名称 |
类型 |
说明 |
限制 |
是否可以为空 |
| Keyword |
string |
提供程序所保留的所有关键字的列表。
示例:AND
|
是,当作数组对待 |
否 |
DISCOVER_LITERALS 行集
当使用 RequestType 参数中的 DISCOVER_LITERALS 枚举值调用 Discover 方法时,它将在 Result 参数中返回 DISCOVER_LITERALS 行集。这种请求类型将向提供程序查询有关支持的直接量的信息,包括数据类型和值。
每个返回的直接量都是 DISCOVER_LITERALS 行集中的一行。
| 列名称 |
类型 |
说明 |
限制 |
是否可以为空 |
| LiteralName |
string |
行中描述的直接量的名称。
示例:DBLITERAL_LIKE_PERCENT
|
是,当作数组对待 |
否 |
| LiteralValue |
string |
包含实际的直接量值。
例如,如果 LiteralName 为 DBLITERAL_LIKE_PERCENT,并在 LIKE 子句中使用百分号字符 (%) 匹配零个或多个字符,该列的值将为“%”。
|
否 |
否 |
| LiteralInvalidChars |
string |
直接量中的无效字符。
例如,如果表名称不能包含数字字符,则此字符串应为“0123456789”。
|
否 |
是 |
| LiteralInvalidStartingChars |
string |
不能作为直接量第一个字符的字符。如果直接量的第一个字符可以是任何有效字符,则此字符串应为空。 |
否 |
是 |
| LiteralMaxLength |
integer |
直接量的最大字符数。如果没有最大字符数限制或最大字符数限制未知,其值为 –1。 |
否 |
是 |