Ejemplo de la forma de datos
El siguiente comando de forma de datos muestra cómo crear un Recordset jerárquico a partir de las tablas Customers y Orders de la base de datos 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 Ejemplo de Visual Basic de forma de datos), crea un capítulo (chapOrders) para cada registro devuelto de la tabla Customers. Este capítulo consta de un subconjunto del objeto Recordset devuelto de la tabla Orders (Pedidos). El capítulo chapOrders contiene toda la información solicitada sobre los pedidos realizados por el cliente determinado. En este ejemplo, el capítulo consta de tres columnas: OrderID, OrderDate y CustomerID.
Las dos primeras entradas del objeto Recordset con forma resultante son las siguientes:
CustomerID | ContactName | OrderID | OrderDate | CustomerID |
---|---|---|---|---|
ALFKI | Maria Ander | 10643 10692 10702 10835 10952 11011 |
25-08-1997 03-10-1997 13-10-1997 15-01-1998 16-03-1998 09-04-1998 |
ALFKI ALFKI ALFKI ALFKI ALFKI ALFKI |
ANATR | Ana Trujillo | 10308 10625 10759 10926 |
18-09-1996 08-08-1997 28-11-1997 04-03-1998 |
ANATR ANATR ANATR ANATR |
En un comando SHAPE, APPEND se usa para crear un objeto Recordset secundario relacionado con el objeto Recordset primario (tal y como se devuelve del comando específico del proveedor inmediatamente después de la palabra clave SHAPE descrita anteriormente) mediante la cláusula RELATE. Normalmente, el elemento primario y secundario tienen al menos una columna en común: el valor de la columna de una fila del elemento primario es el mismo que el valor de la columna en todas las filas del elemento secundario.
Existe una segunda manera de usar comandos SHAPE: más concretamente, para generar un objeto Recordset primario a partir de un objeto Recordset secundario. Los registros del objeto Recordset secundario se agrupan normalmente mediante la cláusula BY, y se agrega una fila al objeto Recordset primario para cada grupo resultante del elemento secundario. Si se omite la cláusula BY, el objeto Recordset secundario formará un único grupo y el objeto Recordset primario contendrá solamente una fila. Esto es útil para calcular agregados de "total general" en todo el objeto 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 mediante programación o a través de un control visual adecuado. Un comando SHAPE se emite como cualquier otro texto de comando de ADO. Para obtener más información, véase Comandos Shape en General.
Independientemente de la manera en que se forme el objeto Recordset primario, este contendrá una columna de capítulo que se usa para relacionarlo con un objeto Recordset secundario. Si lo desea, el objeto Recordset primario también puede tener columnas que contengan agregados (SUM, MIN, MAX, etc.) sobre las filas secundarias. Tanto el objeto Recordset primario como el secundario pueden tener columnas que contengan una expresión en la fila del objeto Recordset, así como columnas que son nuevas e inicialmente vacías.
Esta sección continúa con el tema siguiente.