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.