Por qué no usas un recordset. Prueba asÃ:
Include "Fivewin.ch"
Function Main()
LOCAL txSql
PRIVATE oCn,oRs,oError
//Crea el objeto conexión
TRY
oCn := TOleAuto():new("adodb.connection")
CATCH oError
MsgStop( "No se pudo crear el objeto conexión !")
RETURN(.F.)
END
//Crea el objeto recordset que manejará la tabla
TRY
oRs := TOleAuto():New("adodb.recordset")
CATCH oError
MsgStop( "No se pudo crear el recordset)
RETURN .f.
END
//Abrimos la conexión
TRY
oCn:Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=venda.mdb" )
CATCH oError
MsgStop( "No se pudo abrir la conexión !")
return .f.
END
//Configuramos el recordset que manejara la tabla
oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:CursorType := adOpenKeyset//adOpenDynamic
oRs:Source := "SELECT * FROM imovweb; "
oRs:ActiveConnection(oCn)
//Ahora si cargamos los datos en el recordset
TRY
oRs:Open()
CATCH oError
MsgStop( "No se pudo cargar los datos de la Tabla imovweb")
RETURN .f.
END
//asegurarse que la tabla no esté vacÃa para usar
//los métodos que pones de ejemplo
if ! oRs:BOF() .AND. ! oRs:EOF()
oRs:MoveNext() //-- Funciona
oRs:MoveFirst() //-- NÃO Funciona
oRs:MoveLast() //-- NÃO Funciona
oRs:RecordCount()// -- NÃO Funciona
endif
ors:Close()
oCn:Close()
Saludos
Marcelo Jingo