Uso de Recordset con GetRows en ASP clásico

Código ASP clásico

A menudo es necesario obtener los registros recuperados en un recordset dentro de una matriz. Esto es posible utilizando el método GetRows del objeto Recordset que devuelve una matriz.

 

Sql = "SELECT * From Empleados”
Set rs = conn..Execute(Sql)

If rs.EOF = True And rs.BOF = True Then
response.end()
End If

Dim NoOfReords
RecordArray = rs.GetRows
NoOfReords= UBound(RecordArray, 2)+1

Ejemplo de tabla:

ID              Nombre          Edad

-----------------------------------------

1                  Juan                24

2                  Pedro               26

3                  Ragi                 26

4                  Pramod            23

-----------------------------------------

Y podemos acceder a los valores de la siguiente forma:

 

RecordArray(0,0)=1, RecordArray(1,0)=Juan, RecordArray(2,0)=24

RecordArray(0,1)=2, RecordArray(1,1)=Pedro, RecordArray(2,1)=26

El número de registros se obtiene así

 NoOfReords= UBound(RecordArray, 2)+1

El método GetRows del objeto Recordset le permite recuperar el conjunto de resultados en una matriz de dos dimensiones. La manera estándar para recuperar y mostrar registros ha sido la de crear un objeto de conjunto de registros y recorrer los registros, aunque con el método GetRows sólo hay una llamada a la base de datos para hacer un código más eficiente.

Utilizamos la función UBound que devuelve el índice del elemento más alto de la gama para ambas dimensiones, esto básicamente nos permite saber cuántas veces para recorrer tanto las filas y columnas.

<%
Dim oConnection, oRecordset, sConnString, sSQL, arrResults, iRowNumber, iColumnNumber, RowCounter, ColumnCounter

sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Users.mdb")

Set oConnection = Server.CreateObject("ADODB.Connection")
oConnection.Open(sConnString)

sSQL = "SELECT * FROM users_tbl"
Set oRecordSet = oConnection.Execute(sSQL)

If Not oRecordSet.EOF Then
arrResults = oRecordSet.GetRows()

oRecordset.Close
Set oRecordSet = Nothing
oConnection.Close
Set oConnection = Nothing

' obtiene el total de columnas (segunda dimensión de la matriz)
iRowNumber = ubound(arrResults,2)
'obtiene el total de las columnas/registros (primera dimensión de la matriz)
iColumnNumber = ubound(arrResults,1)

For RowCounter=0 to iRowNumber
   For ColumnCounter= 0 to iColumnNumber
   Response.Write(arrResults(ColumnCounter,RowCounter)) & " "
   Next
   Response.write("<br />")
Next

Else
   Response.write("No hay registros.")
End If
%>

tags: Recordset, GetRows, ASP clásico, rendimiento, consultas, bases de datos.

En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.