Compartir vía


Ejemplo de modelado de datos

El siguiente comando de modelado de datos muestra cómo crear un Recordset jerárquico a partir de las tablas Customers y Orders de la base de datos de Northwind.

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

Cuando este comando se usa para abrir un objeto Recordset (como se muestra en el Ejemplo de modelado de datos de Visual Basic), crea un capítulo (chapOrders) para cada registro devuelto de la tabla Customers. Este capítulo consta de un subconjunto de los recordset de devueltos de la tabla Orders de. El capítulo chapOrders contiene toda la información requerida sobre los pedidos realizados por el cliente dado. En este ejemplo, el capítulo consta de tres columnas: OrderID, OrderDatey CustomerID.

Las dos primeras entradas de la forma resultante recordset son las siguientes:

ID de cliente NombreDeContacto ID de Pedido Fecha de Pedido ID de cliente
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

En un comando SHAPE, APPEND se usa para crear un Recordset secundario relacionado con el Recordset primario (tal como se devuelve desde el comando específico del proveedor inmediatamente después de la palabra clave SHAPE que se explicó anteriormente) mediante la cláusula RELATE. Normalmente, la tabla principal y la tabla secundaria tienen al menos una columna en común: el valor de la columna en una fila de la tabla principal es el mismo que el valor de la columna en todas las filas de la tabla secundaria.

Hay una segunda manera de usar comandos SHAPE: es decir, para generar un Recordset primario a partir de un Recordset secundario. Los registros en el Recordset secundario se agrupan, normalmente utilizando la cláusula BY, y se agrega una fila al Recordset primario por cada grupo resultante en el secundario. Si se omite la cláusula BY, el recordset secundario formará un único grupo y el recordset primario contendrá exactamente una fila. Esto es útil para calcular agregados "totales generales" en todo el Recordset secundario .

La construcción de comandos SHAPE también permite crear mediante programación un objeto Recordset con forma . A continuación, puede acceder a los componentes del objeto Recordset de mediante programación o a través de un control visual adecuado. Se emite un comando shape como cualquier otro texto de comando de ADO. Para obtener más información, vea Comandos de forma en General.

Independientemente de la forma en que se forma el Recordset primario, contendrá una columna de capítulo que se usa para relacionarla con un objeto secundario Recordset. Si lo desea, el recordset primario también puede tener columnas que contengan agregados (SUM, MIN, MAX, etc.) en las filas secundarias. Tanto el objeto padre como el objeto hijo Recordset pueden tener columnas que contengan una expresión en la fila del Recordset , así como columnas nuevas e inicialmente vacías.

Esta sección continúa con el tema siguiente.