Compartir vía


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.