Acceso a filas en un conjunto de registros jerárquico (ejemplo)

En el ejemplo siguiente se muestran los pasos necesarios para tener acceso a las filas de un conjunto de registros jerárquico:

  1. Los objetos de conjunto de registros de las tablas authors y titleauthor están relacionados por identificador de autor.

  2. El bucle externo muestra el nombre y los apellidos, el estado y la identificación de cada autor.

  3. El conjunto de registros anexado para cada fila se recupera de la colección Campos y se asigna a rstTitleAuthor.

  4. El bucle interno muestra cuatro campos de cada fila del conjunto de registros anexado.

La propiedad StayInSync se establece en false para fines ilustrativos, de modo que pueda ver el cambio de capítulo explícitamente en cada iteración del bucle externo. Para que el ejemplo de código sea más eficaz, puede mover la asignación en el paso 3 antes de la primera línea del paso 2, para que la asignación se realice solo una vez. A continuación, establezca la propiedad StayInSync en true para que rstTitleAuthor cambie implícita y automáticamente al capítulo correspondiente cada vez que rst se mueva a una nueva fila.

Ejemplo

Sub datashape()
   Dim cnn As New ADODB.Connection
   Dim rst As New ADODB.Recordset
   Dim rstTitleAuthor As New ADODB.Recordset

   cnn.Provider = "MSDataShape"
   cnn.Open    "Data Provider=MSDASQL;" & _
               "Data Source=SRV;Integrated Security=SSPI;Database=Pubs"
' STEP 1
   rst.StayInSync = FALSE
   rst.Open    "SHAPE  {select * from authors} "  & _
               "APPEND ({select * from titleauthor} " & _
               "RELATE au_id TO au_id) AS chapTitleAuthor", _
               cnn
' STEP 2
   While Not rst.EOF
      Debug.Print    rst("au_fname"), rst("au_lname"), _
                     rst("state"), rst("au_id")
' STEP 3
      Set rstTitleAuthor = rst("chapTitleAuthor").Value
' STEP 4
      While Not rstTitleAuthor.EOF
         Debug.Print rstTitleAuthor(0), rstTitleAuthor(1), _
                     rstTitleAuthor(2), rstTitleAuthor(3)
         rstTitleAuthor.MoveNext
      Wend
      rst.MoveNext
   Wend
End Sub

Consulte también

Data Shaping Overview Field Object Fields Collection (ADO) Formal Shape Grammar Microsoft Data Shaping Service for OLE DB (ADO Service Provider) Recordset Object (ADO) Required Providers for Data Shaping Shape APPEND Clause Shape Commands in General Shape COMPUTE Clause Visual Basic para Aplicaciones functions