GetRows() en ASP Classic

by | Abr 18, 2019

Recorset

[vb]
dim Conn,query,RS

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DBName
query = "SELECT nombre,email,telefono FROM usuarios"
Set RS = Conn.execute(query)

if not RS.EOF then
do while not RS.EOF
response.write("Nombre: " & RS("nombre").value & "")
response.write("Email: " & RS("email").value & "")
response.write("Telefono: " & RS("telefono").value & "")
RS.movenext
loop
end if

RS.Close
Conn.Close
Set Conn = nothing
[/vb]

Hacer un bucle a través de un RecordSet es costoso en términos de recursos del servidor a nivel de la base de datos y el servidor Web, entonces, el mejor consejo es utilizar GetRows() para obtener datos del motor de base de datos. La mayoría de las personas usa ADO Recordset y lo recorre. Esto significa que tiene una conexión con el SQL Server abierto mientras ejecuta la secuencia de comandos. La utilización sería como se muestra a continuación:

[vb]
dim reg,reg_eof,record,Conn,query,RS

const reg_nombre = 0
const reg_email = 1
const reg_telefono = 2
reg_eof = true

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DBName
query = "SELECT nombre,email,telefono FROM usuarios"
Set RS = Conn.execute(query)
if not RS.EOF then
reg = RS.getrows()
reg_eof = false
end if
RS.Close
Conn.Close
Set Conn = nothing

if not reg_eof then
for record=0 to UBound(reg,2)
response.write("Nombre: " & reg(reg_nombre,record) & "")
response.write("Email: " & reg(reg_email,record) & "")
response.write("Telefono: " & reg(reg_telefono,record) & "")
next
end if
[/vb]