Foros del Web » Programando para Internet » ASP Clásico »

Contar Registros Devueltos

Estas en el tema de Contar Registros Devueltos en el foro de ASP Clásico en Foros del Web. Hola a tod@s, como estan??? Les cuento mi problema: Resulta q quiero, luego de un SELECT, contar la cantidad de campos q me devolvio, algo ...
  #1 (permalink)  
Antiguo 07/11/2003, 17:52
Avatar de sktrpunk  
Fecha de Ingreso: septiembre-2003
Ubicación: Montevideo
Mensajes: 227
Antigüedad: 21 años, 8 meses
Puntos: 0
Contar Registros Devueltos

Hola a tod@s, como estan???
Les cuento mi problema:
Resulta q quiero, luego de un SELECT, contar la cantidad de campos q me devolvio, algo asi:
Código:
<%
   rs.Open "SELECT Campo FROM Tabla WHERE Campo = 'algo' AND OtroCampo = 'otracosa'", Conn
%>
Esto se supone q devuelve cierta cantidad de campos, solo akeshos q cumplen las condiciones establecidas, weno, sho qiero saber cuando campos cumplieron esas condiciones.
Espero q me puedan ashudar
Desde sha, GRACIAS

AlvAro
__________________
- Sk8 FoR LiFe -
Stay away from my Black Book
  #2 (permalink)  
Antiguo 07/11/2003, 18:00
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Response.Write(rs.RecordCount)

Si te llegara a dar el valor "-1", andá a www.aspfacil.com y buscá en su buscador "recordcount" (sin las comillas) que ahí hay un tip de cómo hacer para que el recordcount te devuelva la cantidad real de los registros y no el -1 (tiene algo que ver con el tipo de apertura del recordset y/o de sus cerrojos, pero ahora no lo recuerdo bien)
__________________
...___...
  #3 (permalink)  
Antiguo 07/11/2003, 18:30
Avatar de sktrpunk  
Fecha de Ingreso: septiembre-2003
Ubicación: Montevideo
Mensajes: 227
Antigüedad: 21 años, 8 meses
Puntos: 0
Efectivamente, me devuelve el valor -1 cuando no hay registros q coincidan. No bastaria con poner algo como <% Response.Write(rs.RecordCount + 1) %>???
Weno, busco mas info y te cuento si encuentro algo
Saludos

AlvAro
__________________
- Sk8 FoR LiFe -
Stay away from my Black Book
  #4 (permalink)  
Antiguo 10/11/2003, 05:50
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años, 10 meses
Puntos: 1
a veces basta con rellenar el recordset. Para ello, antes de preguntar el recordCount haz un
rs.movelast
rs.movefirst

y entonces

response.write rs.recordcount
  #5 (permalink)  
Antiguo 11/11/2003, 21:44
Avatar de sktrpunk  
Fecha de Ingreso: septiembre-2003
Ubicación: Montevideo
Mensajes: 227
Antigüedad: 21 años, 8 meses
Puntos: 0
GOT IT!!! =)

Sha sta, lo resolviii!!! =)
El problema era este: tenia un form con campos para ingresar usuario y contraseña:
Código:
<form name="form" method="post" action="procesar.asp">
  <p>
    <input name="username" type="text">Usuario </p>
  <p> 
    <input name="password" type="password">Contraseña</p>  <p>
    <input type="submit" name="Submit" value="Acceder">
  </p>
</form>
Tonces cuando me ingresaban esos datos sho los recuperaba
Código:
<%
   Dim user, pass
   user = Request.Form("username")
   pass = Request.Form("password")
%>
Y utilizaba esos datos para buscar en la base coincidencias.
Código:
<%
   rs.Open "SELECT * FROM Usuarios WHERE Nombre = '"&user&"' AND Password = '"&pass&"'", Conn
%>
Si estaban bien los datos, arriba, los dejaba ingresar sin problemas. La cosa era cuando alguno de los datos era inexistente, sho hacia un:
Código:
<%
   if user = rs("Nombre") AND pass = rs("Password") then
      --corria un par de commandos--
   else
      Response.Redirect("error.asp")
   end if
%>
por lo q me decia q habia ocurrido una excepcion en la linea del if (sha q el RecordSet estaba vacio, jamas podria nada ser igual a nada) y me tiraba toda la condicional a la mierda.
Entonces se me ocurrio recorrer el RecordSet en busca de resultados, y buscando en la red encontre un "If Not RS.EOF Then" q me salvo la vida, al principio no entendia bien el concepto, pero en seguida agarre la idea de q si Rs.EoF = True, entonces no hay nada, vacio, y no precisa recorrer la condicional, ya q no hubo coincidencias.
Por lo q me qedo asi la condicional:
Código:
<%
If Not RS.EOF Then
      --Commandos--
   Else
      Response.Redirect("error.asp")
End if
%>
Asi q para aqeshos q quieran comparar datos contra una base partiendo de datos ingresados por usuarios, aqui esta su solucion (esto bien podria ingresar en la FAQ's =)
En fin, era bastante facil; gracias a dazuaga y AlexNV por haberse puesto las pilas en ashudarme.
Saludos

AlvAro
__________________
- Sk8 FoR LiFe -
Stay away from my Black Book
  #6 (permalink)  
Antiguo 11/11/2003, 22:18
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
pero la pucha que lo parió, sktrpunk!!

si desde un comienzo ubieses dicho el error que te arrojaba habrías ahorradoTE tiempo!!! ;)

Como norma: Siempre que intentes acceder a un recordset, comprobá que no se encuentre al principio (rs.BOF) ni al final (rs.EOF) al mismo tiempo! (cosa que si ocurre, quiere decir que no hay registros que mostrar)
__________________
...___...
  #7 (permalink)  
Antiguo 11/11/2003, 22:30
Avatar de sktrpunk  
Fecha de Ingreso: septiembre-2003
Ubicación: Montevideo
Mensajes: 227
Antigüedad: 21 años, 8 meses
Puntos: 0
Je, es q soy nuevo en esto del ASP, como veras toi en los "primeros pasos". Pero weno, ahora sha se q lo primero es comprobar si hay registros. De a golpes se aprende, no???
Jejeje
Have a lot of fun

AlvAro
__________________
- Sk8 FoR LiFe -
Stay away from my Black Book
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:42.