Contoh Pembentukan Data

Perintah pembentukan data berikut menunjukkan cara membuat Recordset hierarkis dari tabel Pelanggan dan Pesanan di database Northwind.

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

Ketika perintah ini digunakan untuk membuka objek Recordset (seperti yang ditunjukkan dalam Contoh Visual Basic pembentukan Data), perintah ini membuat bab (chapOrders) untuk setiap rekaman yang dikembalikan dari tabel Pelanggan . Bab ini terdiri dari subset Recordset yang dikembalikan dari tabel Pesanan . Bab chapOrders berisi semua informasi yang diminta tentang pesanan yang dilakukan oleh pelanggan tertentu. Dalam contoh ini, bab terdiri dari tiga kolom: OrderID, OrderDate, dan CustomerID.

Dua entri pertama dari Recordset berbentuk hasil adalah sebagai berikut:

ID Pelanggan ContactName OrderID OrderDate ID Pelanggan
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

Dalam perintah SHAPE, APPEND digunakan untuk membuat Recordset turunan yang terkait dengan Recordset induk (seperti yang dikembalikan dari perintah khusus penyedia segera setelah kata kunci SHAPE yang dibahas sebelumnya) oleh klausa RELATE. Induk dan anak biasanya memiliki setidaknya satu kolom yang sama: Nilai kolom dalam baris induk sama dengan nilai kolom di semua baris anak.

Ada cara kedua untuk menggunakan perintah SHAPE: yaitu, untuk menghasilkan Recordset induk dari Recordset turunan. Rekaman dalam Recordset turunan dikelompokkan, biasanya dengan menggunakan klausa BY, dan satu baris ditambahkan ke Recordset induk untuk setiap grup yang dihasilkan dalam anak. Jika klausa BY dihilangkan, Recordset turunan akan membentuk satu grup dan Recordset induk akan berisi tepat satu baris. Ini berguna untuk menghitung agregat "total keseluruhan" di seluruh Recordset anak.

Konstruksi perintah SHAPE juga memungkinkan Anda membuat Recordset berbentuk secara terprogram. Anda kemudian dapat mengakses komponen Recordset secara terprogram atau melalui kontrol visual yang sesuai. Perintah bentuk dikeluarkan seperti teks perintah ADO lainnya. Untuk informasi selengkapnya, lihat Perintah Bentuk di Umum.

Terlepas dari cara mana Recordset induk terbentuk, itu akan berisi kolom bab yang digunakan untuk menghubungkannya dengan Recordset anak. Jika Anda mau, Recordset induk juga dapat memiliki kolom yang berisi agregat (SUM, MIN, MAX, dan sebagainya) di atas baris turunan. Baik Recordset induk maupun turunan dapat memiliki kolom yang berisi ekspresi pada baris di Recordset, serta kolom yang baru dan awalnya kosong.

Bagian ini berlanjut dengan topik berikut.