共用方式為


數據成形範例

下列數據成形命令示範如何從 Northwind 資料庫中的 CustomersOrders 數據表建置階層式 Recordset

SHAPE {SELECT CustomerID, ContactName FROM Customers}   
APPEND ({SELECT OrderID, OrderDate, CustomerID FROM Orders} AS chapOrders   
RELATE customerID TO customerID)   

當此命令用來開啟 Recordset 物件時(如 Visual Basic Data Shaping範例所示),它會針對從 Customers 數據表傳回的每個記錄建立一章(chapOrders)。 本章包含從 Orders 表格傳回的 紀錄集 子集。 chapOrders 章節包含指定客戶下訂單的所有所需資訊。 在此範例中,章節包含三個數據行:OrderIDOrderDate,以及 CustomerID

結果形狀的前兩筆條目 Recordset 如下所示:

客戶編號 聯絡人姓名 訂單編號 訂單日期 顧客編號
ALFKI Maria Ander 10643

10692

10702

10835

10952

11011
1997-08-25

1997-10-03

1997-10-13

1998-01-15

1998-03-16

1998-04-09
ALFKI

ALFKI

ALFKI

ALFKI

ALFKI

ALFKI
ANATR Ana Trujillo 10308

10625

10759

10926
1996-09-18

1997-08-08

1997-11-28

1998-03-04
ANATR

ANATR

ANATR

ANATR

在 SHAPE 命令中,APPEND 用於透過 RELATE 子句將其與上層 Recordset 相關聯,從而建立子系 Recordset(如在稍早討論的 SHAPE 關鍵詞之後立即從提供者特定命令傳回)。 父系和子系通常至少有一個共同數據行:父系數據列中數據行的值與子系所有數據列中數據行的值相同。

有第二種方式可以使用SHAPE命令:也就是從子 Recordset產生父 Recordset。 子 Recordset 中的記錄會分組,通常是使用 BY 子句,並將一個數據列新增至子系中每個結果群組的父 Recordset。 如果省略 BY 子句,則子 Recordset 會形成單一群組,而父 Recordset 將只包含一個數據列。 這適用於計算整個子系 Recordset的「總計」匯總。

SHAPE 命令結構也可以讓您以程式自動化方式建立一個具有特定形狀的 Recordset。 然後,您可以透過程式化方式或透過合適的視覺控制,存取 Recordset 的元件。 圖形命令會像任何其他 ADO 命令文字一樣發出。 如需詳細資訊,請參閱 圖形命令(一般)

無論以何種方式形成父 Recordset,它都會包含一個章節數據行,用來將它與子 Recordset產生關聯。 如果您需要,父記錄集Recordset 也可以包含針對子行的匯總列(例如:SUM、MIN、MAX 等)。 父系和子系 記錄集 可以有包含應用在 記錄集數據行上的運算式的數據列,以及新建且初始為空的數據列。

本節接下來將探討下列主題。