ya
El problema es que seguramente al mover un puntero el recordSet, ese puntero esta ahora en la localidad de memoria correspondiente a la posición 0 del arreglo, supongo que si pudieras moverlo dos lugares te encimaría ahora dos casillas del arreglo.
Y supongo que es por que no declaraste que ibas a usar ese arreglo sino hasta que creaste el arreglo, dentro del FOR. La solución entonces es definir el arreglo antes, con algo como:
...
Redim arrResult(0)
variable = GetRatingInfo (sSQL)
...
Y funciona, ya lo probé.
Aunque claro esta que hay que limpiar tu código, no es obligatorio pero yo lo dejaría así:
Código ASP:
Ver originalsSQL= "SELECT * FROM Usuarios WHERE Idusuario = 1 "
Redim arrResult(0)
variable = GetRatingInfo (sSQL)
Function GetRatingInfo(sSQL)
Set rs = Conexion.Execute(sSQL) 'Ejecuto consulta que devuelve una fila
If Not rs.EOF Then
Response.Write "Fields.Count value: " & rs.Fields.Count & "<br/>"
For i=0 To rs.Fields.Count -1 'recorro los valores de esa fila
call Push (arrResult,rs(i)) 'le paso a la funcion push una variable por referencia, y un dato o valor
Response.Write "Item "& i & " value: " & rs(i) & "<br/>"
Response.Write "arrResult "& i & " value: " & arrResult(i) & "<br/>" ' ACA, DENTRO DEL FOR, EL INDICE 0 DEL ARRAY ANDA
Next
Response.Write "arrResult 0 value: " & arrResult(0) & "<br/>" ' ACA, FUERA DEL FOR, EL INDICE 0 DEL ARRAY DA ERROR
End If
GetRatingInfo = arrResult
End Function
Sub Push(ByRef mArray, ByVal mValue) ' función que recibe una variable y un valor
If isnull(mValue) Then mValue = "NULL"
Redim Preserve mArray(UBound(mArray) + 1) ' agrando el array y
mArray(UBound(mArray)) = mValue ' le pongo el valor
End Sub
Saludos