データ シェイプの例

次のデータ 整形コマンドは、Northwindデータベースの Customers テーブルと Orders テーブルから階層レコードセットを構築する方法を示しています。

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

このコマンドを使用して Recordsetオブジェクトを開く場合 (「Visual Basicデータ整形の例」に示すように)、Customers テーブルから返される各レコードの章 (chapOrders)が作成 されます。 この章は 、Orders テーブルから返 されるレコード セットのサブセットで構成されます。 chapOrders の章には、指定された顧客が注文した注文に関して要求された情報すべてが含まれている。 この例では、この章は 、OrderID、OrderDate、 およびCustomerID の 3 つの列 で構成されています

結果の整形されたレコードセットの最初の 2 つの エントリは 次のとおりです。

CustomerID [ContactName] OrderID OrderDate CustomerID
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 を使用して、親レコード セットに関連 する子レコードセットを作成します (前に説明した SHAPE キーワードの直後にプロバイダー固有のコマンドから返されます)。 親と子には、通常、少なくとも 1 つの列が共通しています。親の行の列の値は、子のすべての行の列の値と同じです。

SHAPE コマンドを使用する 2 つ目の方法があります。子レコードセット から親 レコード セットを生成 する方法です。 子レコードセット内のレコードは、通常は BY 句を使用してグループ化され、子の結果のグループごとに 1 つの行が親 レコード セットに追加されます。 BY 句を省略した場合、子 レコード セットは 1 つのグループを形成し、親 レコード セットには 1 つの行が含まれます。 これは、子レコードセット 全体の "総計" 集計を計算する場合に 便利です

SHAPE コマンド コンストラクトを使用すると、プログラムで整形されたレコードセット を作成 することもできます。 その後、プログラムまたは適切なビジュアル コントロールを使用して 、レコード セットのコンポーネントにアクセスできます。 shape コマンドは、他の ADO コマンド テキストと同様に発行されます。 詳細については、「 Shape Commands in General 」 を参照してください

親レコードセットの形式に関係なく、子レコードセット に関連付ける chapter 列が含 まれます。 必要な場合は、親 レコード セットに、子行に対する集計 (SUM、MIN、MAX など) を含む列を含めすることもできます。 親レコードセットと子 レコードセットの両方 に、 レコード セット内の行に式を含む列と、新しい列と最初は空の列を含めできます。

このセクションでは、次のトピックに進まれます。