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

contar los registro de mi consulta

Estas en el tema de contar los registro de mi consulta en el foro de ASP Clásico en Foros del Web. como puedo hacer para contar los registro de mi consulta en ASP cuando hago mi conexion <% dim cant, Cn_miconexion,obrs Set Cn_miconexion = Server.CreateObject("ADODB.Connection") Cn_miconexion.Open("miconexion ...
  #1 (permalink)  
Antiguo 19/03/2004, 15:06
 
Fecha de Ingreso: marzo-2004
Ubicación: Rimac
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
contar los registro de mi consulta

como puedo hacer para contar los registro de mi consulta en ASP cuando hago mi conexion
<%
dim cant, Cn_miconexion,obrs
Set Cn_miconexion = Server.CreateObject("ADODB.Connection")
Cn_miconexion.Open("miconexion a SQLserver")
Set obRS = Cn_miconexion.execute("Select * from mi_tabla")
cant = obrs.RecordCount

if cant < 0 then
response.writhe("no hay datos")
en dif

%>
el valor que me arrroja es de -1, con esa propiedad no me funciona o no se que estoy haciendo mal quiero saber cuantos datos me devuelve mi obRS, como lo puedo hacer y haber si en un ejemplo me ayudan
Gracias
__________________
Analista Programador de Sistemas
Lima - Perú
51196672141
  #2 (permalink)  
Antiguo 19/03/2004, 17:43
Avatar de kalijunfan  
Fecha de Ingreso: febrero-2004
Ubicación: Montevideo, Uruguay
Mensajes: 96
Antigüedad: 20 años, 2 meses
Puntos: 0
Estimado rycjesus, tu problema está en cómo estás abriendo el recordset, al hacerlo con un Execute lo estás haciendo con un cursor de solo lectura y un bloqueo adForwardOnly, el usar ese tipo de bloqueo no te permite utilizar la propiedad RecordCount ya que esta propiedad exige otro tipo de bloqueo. Para poder utilizar el RecordCount necesitás abrir el recordset explícitamente utilizando un objeto ADODB.Recordset, por ej:

<%
dim cant, Cn_miconexion,obRS, strSql
Set Cn_miconexion = Server.CreateObject("ADODB.Connection")
Cn_miconexion.Open("miconexion a SQLserver")
Set obRS = Server.CreateObject("ADODB.Recordset")
strSql = "Select * from mi_tabla"
obRS.Open strSql, Cn_miconexion, 2, 2
cant = obRS.RecordCount

if cant < 0 then
response.writhe("no hay datos")
en dif

%>

Eso debería solucionar tu problema. Ahora si querés seguir abriendo el recordset con un execute, lo cual no te lo recomiendo, tendrías que utilizar el método GetRows del recordset para recuperar todos los registros y utilizar un UBound() para obtener la cantidad de registros devueltos, por ej:

<%
dim cant, Cn_miconexion,obrs, arrReg
Set Cn_miconexion = Server.CreateObject("ADODB.Connection")
Cn_miconexion.Open("miconexion a SQLserver")
Set obRS = Cn_miconexion.execute("Select * from mi_tabla")
arrReg = obrs.GetRows
cant = UBound(arrReg, 2) + 1

if cant < 0 then
response.writhe("no hay datos")
en dif

%>

Cualquiera de esas dos opciones debería solucionar tu problema.
Probalo y después me contás.

  #3 (permalink)  
Antiguo 20/03/2004, 08:53
 
Fecha de Ingreso: marzo-2004
Ubicación: Rimac
Mensajes: 17
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias por la explicacion detalla kalijunfan, pero ya habia solucionado el problema y no se si estoy haciendo lo correcto
Set obRS = Server.CreateObject("ADODB.Recordset")
despues de esta linea
le agrege
obrs.CursorType = 1
de ahi el obrs.open strsql,conexino
ya no tueve la necesidad de poner por paranetros adicionales como 2,2

te quiero pedir pora for si serias tan amable de ayudar de llenar los combox en modo de ejecucion por decir si yo selecciono un pais en el otro combo me debe salir todo los departamentos de ese pais aqui tengo el codigo no se que esta mal

*******************funcion llenar provincia**************
<%
FUNCTION llenarprovincia

cad="select prv_cod,prv_des from tb_provincia where substring (prv_cod,1,2)='15'"

set obprv = cn.execute(cad)
while not obprv.eof
dep = obprv.fields("prv_des")
dec = obprv.fields("prv_cod")
%>
<option value="<%=dec%>"><%=dep%></option>
<%obprv.movenext
wend END FUNCTION %>
</select>

***este es el combo de paises en este caso es departamente***

<select name="cmbdep" id="cmbdep" onChange="<%=dis%>">
<option value="">Departamento</option>
<%
while not obdpt.EoF
dep = obdpt.fields("dep_des")
dec = obdpt.fields("dep_cod")
%>
<option value="<%=dec%>"><%=dep%></option>
<% Obdpt.Movenext
wend %>
</select>
los demas si no le llamo la funcion me funciona perfectamente pero lo que pasa es que si selecciono un departamento me sale los que no pertenence a ese departamento, pero si salen de ese mismo departamento seleccionado seria mas facil para el usuario.
de ante mano gracias
hago todo lo que esta a mi alcance pero nada,
__________________
Analista Programador de Sistemas
Lima - Perú
51196672141
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 10:21.