DSO决策支系统程序员参考
概述
微软SQL Server 2000分析服务为你提供了真正的机会来创建与整合自定义应用程序。服务器对象模型DSO提供了能通过COM自动化程序语言(如VB5.0与后续版本)来使用的接口与对象。此外,VC++程序员也可以使用DSO,DSO对象同时支持早期或延后绑定。
程序员参考提供了使用DSO的细节信息,以用于开发与分析服务器交互的自定义应用程序。关于使用AS的其它程序工具的更多信息,请参阅“编写AS应用程序”一节。
本部分的主题覆盖了以下内容:
主题 |
描述 |
Interfaces(接口) |
关于你编程操作DSO对象的每个接口的细节,包括接口管理的集合、方法与属性。 |
Events(事件) |
DSO对象支持的事故明细,包括数据库报告与对象处理事件。 |
Objects(对象) |
关于DSO对象的信息。对象的主题由它们拥用的默认接口提供,还包括特定对象的集合、方法与属性。 |
Enumerations(枚举) |
DSO提供的枚举细节与关于如何使用它们的信息 |
Collections(集合) |
DSO中使用的关于集合的信息,包括应用这些集合的常用方法与属性。 |
接口
DSO中有话多接口。对象拥有相似功能实现的公共接口。举几个例子:数据库、多维数据集、分区,以及聚合实现了MDStore接口。MDStore对象是一个多维数据容器。数据库包含多维数据集的关系信息,多维数据集包含存储数据的分区,以及聚合是分区中预先计算好的关联数据的摘要。MDStore对象拥有类似的结构。它们包含分类数据的维度集合,指定关系数据管理系统的数据源包含事故和维度表,定义安全权限的规则,等等。
给一个参考给MDStore接口或其它DSO接口,你能通过测试ClassType属性来确定是哪个类型的对象。实现了MDStore接口的对象可以是以下类型:clsDatabase,clsCube,clsPartition与clsAggregation。贯穿本参考,DSO对象都用前缀符号“cls“标识。DSO 类类型枚举包括所有DSO类类型的完整列表。
不是所有对象都用相同的方法来实现公用接口的,一些对象不实现所有的接口属性、方法与集合。例如,数据库对象(clsDatabase)实现了MDStore公用接口的BeginTrans方法,但立方对象(clsCube)则没有实现。一些对象限制处理某些属性以例于它他成为只读属性,而不是可读/写的。如果你尝试处理一个没有实现的属性或调用一个没有实现的方法,DSO会抛出一个错误。
DSO暴露了Command,Dimension,Level,MDStore,Measure,及Role通用接口。下表列出了DSO通用接口及实现它们的对象类型。
接口 |
描述 |
实现对象 |
Command |
Command接口暴露了定义与管理在客户端与AS上执行MDX语句的功能 |
clsDatabaseCommand clsCubeCommand clsRoleCommand |
Dimension |
Dimension接口定义了属性、方法与集合,你可以用来操作不同类型的维度:数据库维、多维数据集维、分区维以及聚合维。 |
clsCubeDimension clsPartitionDimension clsAggregationDimension |
Level |
Level接口定义了对象来说明维度的层次 |
clsDatabaseLevel clsCubeLevel clsPartitionLevel clsAggregationLevel |
MDStore |
实现MDStore接口的对象均包含以下维: 数据库、多维数据集、分区与聚合 |
clsDatabase clsCube clsPartition clsAggregation |
Measure |
实现Measure接口的对象描述了存储在多维数据集,分区,与聚合中的值。 |
clsCubeMeasure clsPartitionMeasure clsAggregationMeasure |
Role |
实现Role接口的对象包含数据库、多维数据集,与数据挖掘模型的处理权限 |
clsDatabaseRole clsCubeRole clsMiningModelRole |
一些DSO对象没有实现通用接口。你可以使用这些对象的默认接口:clsServer,clsDataSource,clsMiningModel,clsColumn,clsCubeAnalyzer,clsPartitionAnalyzer,与clsMemberProperty。
备注:
DSO类库暴露了许多对象类,例如Cube,Database,Partition,CubeDimension等等。这些对象保留到将来使用并且有意不使用在DSO应用程序中。你应使用通用接口来代替。举个例子,使用以下代码来创建一个类类型为clsDatabase的对象(一个数据库对象实现了MDStore接口):
‘Assume an object (dsoServer) of ClassType clsServer exists.
‘Add database object to server's MDStores collection.
Dim dsoDB As MDStore
‘Declare the object by the interface.
Set dsoDB = dsoServer.MDStores.AddNew("MyDB")
经常使用恰当的对象的通用接口。举个例子,主要的对象类型都使用了MDStore接口作为它们的专用接口。下面的代码例子显示了使用Cube对象的专用接口:
' INCORRECT - DO NOT USE.
private dsoCube As DSO.Cube
' CORRECT
Private dsoCube As DSO.MDStore
这个规则的唯一例外就是Database对象。如果你的客户端应用程序需要捕获数据库事件,对象的许多接口应用MDStore来代替,如下面的代码所示:
' Use this statement if you do not need to trap events.
Public dsoDB as DSO.MDStore
' Use this statement if you need to trap events.
Public WithEvents dsoDB as DSO.Database
Command接口
在DSO中,某些对象可以包含一组用户自定义的命令,以便于你处理对象时这些命令在数据透视表服务客户端自动执行。这些命令可以包括MDX表示的表达式,如定义计算成员,命名集,库资源,及其它命令。
安全提示 命令可能是安全漏洞源;它们可以调用系统或用户自定义的函数而不需要用户知识或干预,且包含存储在简单文本中的安全许可。在实现这些命令前,回顾一下安全问题的命令文本。
实现了Command接口的对象,CubeCommand,DBCommand,与RoleCommand,属性ClassType都有各自的值clsCubeCommand,clsDatabaseCommand,clsRoleCommand。Command接口提供了集合、方法与属性来操作这些对象。
应用于:
clsCubeCommand
clsDatabaseCommand
clsRoleCommand
集合:
Command接口包含以下集合:
集合 |
描述 |
CustomProperties |
Command对象的用户自定义属性 |
方法:
Command接口包含以下方法:
方法 |
描述 |
Clone |
拷贝一个已存在的对象到相同类型的目标对象。 |
LockObject |
锁定一个对象 |
UnlockObject |
解锁一个先前被锁定的对象 |
Update |
保存Command对象的定义到元数据知识库中。 |
属性:
命令接口支持以下属性:
属性 |
描述 |
||
ClassType |
返回标识特定类类型的枚举常量。 |
||
CommandType |
返回标识命令用途的枚举常量。 |
||
Description |
设置或返回命令对象的描述。 |
||
IsValid |
指出Name与Statement属性是否为空,命令对象是否属于一个集合 |
||
Name |
设置或返回命令对象的名称 |
||
OrdinalPosition |
返回命令对象在父对象MDStore的Commands集合中的索引号 |
||
Parent |
|