Loading...

Uso de Recordset con GetRows en ASP clásico

Ez.Biz Cloudware
Blog de ASP Clásico

Uso de Recordset con GetRows en ASP clásico

Código ASP clásico

Por ASP clásico / 22/11/2013 @ 14:50:57 / 1642 visitas

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
%>

Descubre más sobre cómo simplificar y optimizar tu trabajo empresarial en el Blog de CoreASP.

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

Descargo de Responsabilidad:

El contenido y los recursos que ofrecemos en CoreASP están destinados únicamente a proporcionar herramientas y ejemplos prácticos para el desarrollo en ASP Clásico. Esta información es de carácter general y no debe considerarse asesoramiento profesional o técnico específico para tu proyecto. Aunque hacemos todo lo posible por asegurar la calidad y precisión de los recursos compartidos, no garantizamos que sean completamente libres de errores o que se ajusten perfectamente a todas las situaciones. CoreASP no se responsabiliza por cualquier pérdida, daño o inconveniente derivado del uso directo o indirecto de los recursos o información proporcionada. Además, CoreASP no respalda ni asume responsabilidad por enlaces o contenido de terceros que puedan estar referenciados en nuestra plataforma. Todos los derechos de propiedad intelectual sobre el contenido y recursos publicados en CoreASP pertenecen a CoreASP o a sus respectivos propietarios, y su uso está sujeto a las condiciones de la licencia especificada para cada recurso. Nos reservamos el derecho de modificar este descargo de responsabilidad en cualquier momento sin previo aviso. Para más detalles, consulta el documento completo de términos y condiciones.