Uso de Recordset con GetRows en ASP clásico
Código ASP clásico
- Por Programador ASP clásico /
- 22/11/2013 @ 14:50:57 /
- 1299 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
%>
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.