Retroceder   Foros del Web > Programación para sitios web > ASP Clásico

Respuesta
 
Herramientas Desplegado
Antiguo 13-abr-2008, 03:36   #1 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
RecordSet RecordCount vs SQL Count

Bien... la pregunta es mas bien sencilla... queria saber si es lo mismo

Código:
Set RecordSet = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT nombre FROM tabla WHERE id = " & Request.QueryString("id")
RecordSet.Open strSQL, adoCon, adOpenStatic, adLockOptimistic

Cantidad = cInt(RecordSet.RecordCount)

If Cantidad > 0 Then
Response.Write(RecordSet("nombre"))
Else
Response.Write("Sin resultados")
End If
...que...

Código:
Set RecordSet = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT COUNT(nombre) AS sql_cantidad, nombre FROM tabla WHERE id = " & Request.QueryString("id")
RecordSet.Open strSQL, adoCon, adOpenStatic, adLockOptimistic

Cantidad = cInt(RecordSet("sql_cantidad"))

If Cantidad > 0 Then
Response.Write(RecordSet("nombre "))
Else
Response.Write("Sin resultados")
End If

Cual es mas eficiente? Son lo mismo? Alguna recomendacion?

Gracias!
i_e_s27 está desconectado   Responder Citando
Antiguo 13-abr-2008, 08:38   #2 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.263
Enviar un mensaje por MSN a u_goldman
Re: RecordSet RecordCount vs SQL Count

Hola i_e_s27, el primer bloque de código abre un recordset con ciertos campos, y utilizas una de las propiedades del rs para contar sus registros, en tanto que el segundo, realmente solo devuelves el contador, por lo tanto los demás campos no están disponibles.

Bajo ciertos tipos de cerrojo, la propiedad recordcount del recordset no funciona, aunque no soy de la idea de inventar el agua tibia, yo te recomendaría que si te funciona el recordcount, ve por ese camino, de lo contrario, yo trataría de crear un arreglo a partir del recordser mediante getRows y contar su número de índices, esto equivaldría a un recordcount, y tendrías disponibles, los campos y el contador.

Saludos
__________________
¿Qué darías por vivir un sueño?
u_goldman esta en línea ahora   Responder Citando
Antiguo 13-abr-2008, 16:32   #3 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
Re: RecordSet RecordCount vs SQL Count

Cita:
Iniciado por u_goldman Ver Mensaje
Hola i_e_s27, el primer bloque de código abre un recordset con ciertos campos, y utilizas una de las propiedades del rs para contar sus registros, en tanto que el segundo, realmente solo devuelves el contador, por lo tanto los demás campos no están disponibles.
De hecho abro el campo "nombre" en ambos ejemplos, porque independientemente de la cantidad de registros, necesito saber el valor del nombre.
El tema de cuantos registros tengo es para para saber si mi consulta entrego uno o mas resultados; porque si no entrego ningun resultado y yo pongo Response.Write(RecordSet("nombre")) me va a tirar error.


Cita:
Iniciado por u_goldman Ver Mensaje
Bajo ciertos tipos de cerrojo, la propiedad recordcount del recordset no funciona, aunque no soy de la idea de inventar el agua tibia, yo te recomendaría que si te funciona el recordcount, ve por ese camino, de lo contrario, yo trataría de crear un arreglo a partir del recordser mediante getRows y contar su número de índices, esto equivaldría a un recordcount, y tendrías disponibles, los campos y el contador.
Lo de los cerrojos ya lo sabia, lo de getRows no; ahora me pongo a averiguar sobre ello.

Pero en realidad mi pregunta venia a las cuestiones de Cual es la mejor practica? o Cual es mas eficiente?

Gracias por responder u_g!
i_e_s27 está desconectado   Responder Citando
Antiguo 13-abr-2008, 22:24   #4 (permalink)
Moderador
u_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy prontou_goldman llegará a ser famoso muy pronto
 
Avatar de u_goldman
 
Fecha de Ingreso: noviembre-2002
Ubicación: LA
Mensajes: 7.263
Enviar un mensaje por MSN a u_goldman
Re: RecordSet RecordCount vs SQL Count

Cita:
Iniciado por i_e_s27 Ver Mensaje
De hecho abro el campo "nombre" en ambos ejemplos, porque independientemente de la cantidad de registros, necesito saber el valor del nombre.
El tema de cuantos registros tengo es para para saber si mi consulta entrego uno o mas resultados; porque si no entrego ningun resultado y yo pongo Response.Write(RecordSet("nombre")) me va a tirar error.


Lo de los cerrojos ya lo sabia, lo de getRows no; ahora me pongo a averiguar sobre ello.

Pero en realidad mi pregunta venia a las cuestiones de Cual es la mejor practica? o Cual es mas eficiente?

Gracias por responder u_g!
Es cierto disculpa, es que estaba en estado inconveniente en realidad no te sabría decir cuál es más eficiente, me quiero imaginar que la opción donde obtienes de base de datos el número de registros, pues no necesitas la capa intermedia que calcula este número, aunque aún así tiene el inconveniente de que el producto cartesiano resultante de esta consulta es grande, pero recuerda que con pocos datos y poca concurrencia cualquier cosa funcionará, así que si es una aplicación chica-mediana, cualquier opción te debe venir bien.

De lo contrario podrías probar con algún "stress tool" y no te olvides de contarnos las conclusiones.

__________________
¿Qué darías por vivir un sueño?
u_goldman esta en línea ahora   Responder Citando
Antiguo 13-abr-2008, 23:53   #5 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
Alegría Re: RecordSet RecordCount vs SQL Count

Pues en realidad si es una aplicacion chica, pero uno siempre trata de hacer las cosas lo mejor posible, no? Ademas de querer aprender un poco mas y aplicar los conocimientos... Es una cuestion cuasi perfeccionista mia jajajaja

Tan solo pregunte por si alguno tenia la repuesta en mente, o a mano. Tampoco es cosa de que se pongan a averiguar ni a hacer tests de stress comparativos.

Gracias por tus respuestas u_g siempre tan atento!
i_e_s27 está desconectado   Responder Citando
Antiguo 14-abr-2008, 07:21   #6 (permalink)
Moderador
Myakire llegará a ser famoso muy prontoMyakire llegará a ser famoso muy prontoMyakire llegará a ser famoso muy pronto
 
Avatar de Myakire
 
Fecha de Ingreso: noviembre-2002
Mensajes: 6.487
Enviar un mensaje por Yahoo  a Myakire
Re: RecordSet RecordCount vs SQL Count

Bueno, supongo es válido para ASP también, peeeeero, utilizar el método RecordCount (por que por lo menos en Delphi es un método no una propiedad), hace que el cliente (el IIS en este caso) solicite todos los registros del query (fetchall) al servidor de base de datos. Si vas a hacer algo con ellos, pues a lo mejor se justifica, pero si no y solo quieres saber el número de filas que cumplen cierta condición, pues regresar el COUNT a mi parecer es lo correcto.

Mis $0.02 como dirían algunos
Myakire está desconectado   Responder Citando
Antiguo 14-abr-2008, 07:50   #7 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.741
Re: RecordSet RecordCount vs SQL Count

interesante post :)

Cita:
Iniciado por i_e_s27 Ver Mensaje
... El tema de cuantos registros tengo es para para saber si mi consulta entrego uno o mas resultados; porque si no entrego ningun resultado y yo pongo Response.Write(RecordSet("nombre")) me va a tirar error...
para evitar el error manejalo antes

si es eof o bof entonces

response.write "no hay registros que mostrar..."
response.end

(y evitas que la pagina se siga cargando o saltas esta consulta)

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
JuanRAPerez está desconectado   Responder Citando
Antiguo 14-abr-2008, 12:19   #8 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
De acuerdo Re: RecordSet RecordCount vs SQL Count

Gracias Myakire por tu leccion de teoria, muy interesante :) Que mas puedo decir? Me gusta aprender jijiji

Cita:
Iniciado por JuanRAPerez Ver Mensaje
interesante post :)
Lo mismo opino!! :)

Cita:
Iniciado por JuanRAPerez Ver Mensaje
para evitar el error manejalo antes

si es eof o bof entonces

response.write "no hay registros que mostrar..."
response.end

(y evitas que la pagina se siga cargando o saltas esta consulta)
Mmmm me habia olvidado del BOF y EOF, esa es buena tambien. Yo me malacostumbre a si RecordCount > 0

Bueno, de a poco voy limando mis asperezas
i_e_s27 está desconectado   Responder Citando
Antiguo 14-abr-2008, 12:21   #9 (permalink)
Colaborador
JuanRAPerez tiene algunos puntos positivos de karma
 
Avatar de JuanRAPerez
 
Fecha de Ingreso: octubre-2003
Mensajes: 1.741
Re: RecordSet RecordCount vs SQL Count

igual podrias probar

Cita:
if RecordCount > 0 then
'trae datos
else
'no trae datos
end if
suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
JuanRAPerez está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:46.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93