Descrição:
Como utilizar o método GetAsyncADORecordSet de uma Consulta?
Solução:
O método GetAsyncADORecordSet cria uma Consulta que, quando finalizada, gera o evento OnAsyncQueryFinish no próprio objeto (Consulta), passando para este evento o resultado (Recordset) gerado.
Diferentemente do método GetADORecordSet, neste caso o script não ‘trava’ enquanto o resultado da consulta não for carregado. É uma boa opção para acessar registros de uma Consulta que retorne muitos dados, e até mesmo para minimizar o efeito de um banco de dados cuja performance esteja comprometida.
Abaixo, um exemplo de script de utilização do método:
Disparando a consulta assíncrona:
Sub CommandButton10_Click() Set Consulta = Screen.Item("E3Browser1").Item("Consulta1") Consulta.GetAsyncADORecordset() End Sub
Registros retornados no evento OnAsyncQueryFinish:
Sub Consulta1_OnAsyncQueryFinish(Recordset, Error) IF error <> true then Set RS = Recordset RS.MoveFirst() For i=1 to RS.Recordcount a1 = RS.Fields("Campo").Value a2 = RS.Fields("Campo2").Value strValues = strValues & a1 & " " & a2 & Chr(13) RS.MoveNext() Next Msgbox strValues End IF End Sub