Olá!
Consegui resolver com exemplos obtidos através da busca do fórum.
Ficou assim:
#include "ado.ch"
PROCEDURE Main()
LOCAL oCn, oRs, oErr
AltD()
TRY
oCn := CreateObject( "ADODB.Connection" )
oCn:ConnectionString := "Provider=OraOLEDB.Oracle;Data Source=XE;User ID=system;Password=abc100;FetchSize=100;CacheType=Memory;"
oCn:Open()
oRs := CreateObject("ADODB.RecordSet")
With Object oRs
:cursorType := adOpenDynamic
:activeConnection( oCn )
:cursorLocation = adUseServer
:maxRecords = 100000
:cacheSize = 100
:source := "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME FROM HR.Countries"
// ou troque as linhas:
// oRs:activeConnection( oCn )
// oRs:source := "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME FROM HR.Countries"
// por:
// oRs:open( "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME FROM HR.Countries", oCn )
:open()
:moveFirst()
CLS
Do While ! :eof()
QOut( Transform( :Fields( "rec" ):value, "999" ), "-", ;
:Fields( "Country_id" ):Value, "-", ;
:Fields( "Country_Name" ):Value )
:MoveNext()
ENDDO
:Close()
oRs := Nil
End
oCn:Close()
oCn := Nil
CATCH oErr
Alert( "Error: " + oErr:Operation + " -> " + oErr:Description )
END
RETURN
//--------------------------------------------------------------------------------
Tópicos que encontrei:
este, postado pelo Itamar M. Lins (o arquivo ADO.CH está neste tópico) e
este postado pelos amigos Alexandre (asimoes) e Rodrigo (rodrmigu). Neste último, consta um link para o site da Oracle, com material relacionado.
Obrigado Cláudio (clrod)