Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/01/2011, 11:33
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Respuesta: ¿Bug de ASP? Encuentra el error

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 original
  1. sSQL= "SELECT * FROM Usuarios WHERE Idusuario = 1 "
  2. Redim arrResult(0)
  3. variable = GetRatingInfo (sSQL)
  4.  
  5. Function GetRatingInfo(sSQL)
  6.     Set rs = Conexion.Execute(sSQL) 'Ejecuto consulta que devuelve una fila
  7.     If Not rs.EOF Then
  8.             Response.Write "Fields.Count value: " & rs.Fields.Count & "<br/>"  
  9.             For i=0 To rs.Fields.Count -1   'recorro los valores de esa fila
  10.            
  11.                 call Push (arrResult,rs(i)) 'le paso a la funcion push una variable por referencia, y un dato o valor
  12.                
  13.                 Response.Write "Item "& i & " value: " & rs(i) & "<br/>"
  14.                 Response.Write "arrResult "& i & " value: " & arrResult(i) & "<br/>" ' ACA, DENTRO DEL FOR, EL INDICE 0 DEL ARRAY ANDA
  15.                
  16.             Next
  17.             Response.Write "arrResult 0 value: " & arrResult(0) & "<br/>" ' ACA, FUERA DEL FOR, EL INDICE 0 DEL ARRAY DA ERROR
  18.     End If
  19.     GetRatingInfo = arrResult
  20. End Function
  21.  
  22. Sub Push(ByRef mArray, ByVal mValue) ' función que recibe una variable y un valor
  23.         If isnull(mValue) Then mValue = "NULL"
  24.         Redim Preserve mArray(UBound(mArray) + 1)   ' agrando el array y
  25.         mArray(UBound(mArray)) = mValue ' le pongo el valor
  26. End Sub

Saludos