您可以基于 command 数据使用数据环境设计器将两个或多个 Command 对象关联在一起。其概念与使用一个 SQL SELECT 语句将两个相关的表联结在一起相似。但是,运行时的结果是一组层次结构记录集而不是一个平面表格。这种类型的层次结构称为一个关系层次结构。
一个关系层次结构是由一个父 Command 对象和一个或多个子 Command 对象组成的,这些子对象通过父对象的 Field 对象与子对象的字段和/或参数的链接而相互关联。在一个关系层次结构中,子 Command 对象变成了父 Command 对象中的字段。
例如,您可能希望在一个 Customers 和 Orders 表之间创建一个关系层次结构。通过基于 CustID 字段将 Orders 表和 Customers 表关联,Orders 记录集变成 Customers 记录集的一个字段。因此,每一行中这个字段的值变成一个对记录集的引用,该记录集中包含那个特定 Customer 的所有 Orders。下面的图片举例说明了这种情况。
注意 在关系层次结构中使用的所有 Command 对象必须与相同的 Connection 对象相关联。您不能从两个不同的数据库关联 Command。
有关关系层次结构的详细信息,请参阅 Data Shaping。
当在数据环境“概要”视图中有两个处于同一级的 Command 对象时,您可以按照下面过程描述的那样创建一个关系层次结构。
注意 包括在一个关系层次结构中的 Command 对象应当是记录集返回的。如果不是,在“Command 属性”对话框的“高级”选项卡中选择“返回的记录集”,并单击“确定”将更改应用于 Command 对象。
要从两个现存的 Command 对象创建一个关系层次结构,请按照以下步骤执行:
项目 | 描述 |
Parent Fields | 从父 Command 对象中选择一个字段。当被添加时,它显示在关系表达式的左边。 |
Child Fields/Parameters | 从子 Command 对象中选择一个字段或参数。当被添加时,它显示在关键字表达式的右边。
注意 您必须将所有必需的参数链接到父 Command 对象中的字段。如果必需的参数没有被链接,该层次结构不能被正确地执行。 |
Add | 在您完成从“父字段”和“子字段/参数”列表中选择之后,单击“添加”。新的关系对显示在“关联定义”关系表达式中(例如,CustomerID TO CustomerID)。根据需要,重复这个过程直到您定义了所有的关系。
注意 您应当在包含相似数据的字段上将两个 Command 对象相关联。例如,如果一个 Command 对象从一个 Orders 表中返回数据,另一个从一个 Customers 表中返回数据,您应当使用在两个表中都存在的一个字段,例如 orderID。 |
Remove | 要删除一个关系对,在显示区域中选择该对,并单击“移除”。 |
注意 当您将任何两个 Command对象相关联时,数据环境设计器不检查有效输入。因此,如果您指定了一个无效的关系,获取的数据可能不是您所期望的。
一旦一个关系被建立,您就可以使用Microsoft Hierarchical FlexGrid 控件将数据作为一个层次结构来显示。
直接构造一个关系层次结构的简便方法是从父 Command 对象创建一个子 Command 对象。要直接创建一个子 Command 对象,首先要创建父 Command 对象,如 Command 对象中描述的那样,然后执行下面的过程。
注意 包括在一个关系层次结构中的 Command 对象应当是记录集返回的。如果不是,在“Command 属性”属性对话框的“高级”选项卡中选择“返回的记录集”,并且单击“确定”将此更改应用于 Command 对象。
要从一个父 Command 对象创建一个子 Command 对象,请按照以下步骤执行:
-或–
右键单击父 Command 对象,并单击快捷方式菜单中的“添加子命令”打开“Command 属性”对话框。
注意 与子 Command 和父 Command 对象相关联的 Connection 对象是相同的。
注意 在“Command 属性”对话框的“通用”选项卡中,“连接”是无效的。这是因为子 Command 对象和父 Command 对象必须与相同的 Connection 对象相关联。