Exemplo da propriedade StayInSync (VB)
Este exemplo demonstra como a propriedade StayInSync facilita o acesso às linhas em um Recordset hierárquico.
O loop externo exibe o nome e o sobrenome, o estado e a identificação de cada autor. O Recordset acrescentado para cada linha é recuperado por meio da coleção Fields e automaticamente atribuído a rstTitleAuthor pela propriedade StayInSync sempre que o Recordset pai vai para uma nova linha. O loop interno exibe quatro campos de cada linha no conjunto de registros acrescentado.
'BeginStayInSyncVB
Public Sub Main()
On Error GoTo ErrorHandler
Dim Cnxn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim rstTitleAuthor As New ADODB.Recordset
Dim strCnxn As String
' Open the connection with Data Shape attributes
Set Cnxn = New ADODB.Connection
strCnxn = "Provider=MSDataShape;Data Provider='sqloledb';Data Source='MySqlServer';" & _
"Initial Catalog='Pubs';Integrated Security='SSPI';"
Cnxn.Open strCnxn
' Create a recordset
Set rst = New ADODB.Recordset
rst.StayInSync = True
rst.Open "SHAPE {select * from Authors} " & _
"APPEND ( { select * from titleauthor} AS chapTitleAuthor " & _
"RELATE au_id TO au_id) ", Cnxn, , , adCmdText
Set rstTitleAuthor = rst("chapTitleAuthor").Value
Do Until rst.EOF
Debug.Print rst!au_fname & " " & rst!au_lname & " " & _
rst!State & " " & rst!au_id
Do Until rstTitleAuthor.EOF
Debug.Print rstTitleAuthor(0) & " " & rstTitleAuthor(1) & " " & _
rstTitleAuthor(2) & " " & rstTitleAuthor(3)
rstTitleAuthor.MoveNext
Loop
rst.MoveNext
Loop
' Clean up
rst.Close
Cnxn.Close
Set rst = Nothing
Set Cnxn = Nothing
Exit Sub
ErrorHandler:
' Clean up
If Not rst Is Nothing Then
If rst.State = adStateOpen Then rst.Close
End If
Set rst = Nothing
If Not Cnxn Is Nothing Then
If Cnxn.State = adStateOpen Then Cnxn.Close
End If
Set Cnxn = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
'EndStayInSyncVB
Consulte Também
Coleção Fields (ADO)
Objeto Recordset (ADO)
Propriedade StayInSync