ocurrio una excepcion?

Tom2000
27 de Mayo del 2003
Tengo el siguiente codigo para mostrar un carrito:

Sub MostrarCarrito
set oRs=Server.CreateObject("ADODB.Recordset")
%> <TABLE BORDER="1" CELLPADDING="1" CELLSPACING="1"> <TR> <TD>NumeroRecibo</TD><TD>Ejercicio</TD><TD>TipoRecibo</TD><TD>Pendiente</TD><TD>Quitar
del carrito</TD></tr> <%
For Each clave in carrito
clave=cint(clave)
SQL="SELECT NumeroRecibo,Ejercicio,TipoRecibo,[Cuota]+[Recargo]-[ImporteCobrado] As Pendiente FROM RECIBO WHERE NumeroRecibo=" & clave
set oRs=oConn.execute(SQL)
if oRS.fields(clave)="" then
response.Write(vacio)
else
%> <TR> <TD><%=oRs.Fields("NumeroRecibo")%></TD><TD><%=oRs.Fields("Ejercicio")%></TD><TD><%=oRs.Fields("TipoRecibo")%></TD><TD><%=oRs.Fields("Pendinete")%></TD><TD><A HREF="shop.asp?ac=sacar&prod=<%=clave%>">Quitar
</A></TD><%
end if
Next
Puse lo de if oRS.fields(clave)="" then
pq me salia un error de BOF o EOF y algo más, pero ahora me sale el error q ocurrio un error de excepcion en esa linea ¿como puedo arreglarlo?

Chas Gracias

Santos Pairazam?
27 de Mayo del 2003
Una vez tuve ese problema, y es que en mi consulta esta preguntando por algùn dato que no existìa.
Verifica si se encuentra el dato por el cual estas preguntando o tal vez en la misma pàgina lo estas eliminando...chequea bien eso.

Hasta Pronto
Lima - Perù

Tom2000
27 de Mayo del 2003
He mirado lo q me has dicho y sigo con le problema, llevo varios dias con ello y ya no se que hacer ni dd consultar.

Gracias de todos modos
ciao

Santos Pairazam?
27 de Mayo del 2003
Segùn vi tu còdigo a la variable clave es de tipo numèrico
estonces pregunta if oRS.fields(clave)=0 then

O sino pregunta despues de tu select :
if not oRS.eof then
'aqui haces simepre y cuando esa consulta tenga algùn dato
end if


Espero eso sea el Problema

Hasta Pronto
Lima - Perù

Tom2000
27 de Mayo del 2003
He hecho lo q me has dicho y me ha ayudado mucho, gracias, lo dejé así:

Sub MostrarCarrito
' carrito es la variable global que referencia al carrito
Dim oRs, oRs2, SQL
Dim clave
Dim total
'total=0
set oRs=Server.CreateObject("ADODB.Recordset")
%> <TABLE BORDER="1" CELLPADDING="1" CELLSPACING="1"> <TR> <TD>NumeroRecibo</TD><TD>Ejercicio</TD><TD>TipoRecibo</TD><TD>Pendiente</TD><TD>Quitar
del carrito</TD></tr> <%
For Each clave in carrito
clave=cint(clave)
SQL="SELECT NumeroRecibo,Ejercicio,TipoRecibo,[Cuota]+[Recargo]-[ImporteCobrado] As Pendiente FROM RECIBO WHERE NumeroRecibo=" & clave
set oRs=oConn.execute(SQL)
if not oRs.eof then
'if oRS.fields(clave)=0 then
'response.Write(vacio)
'else
%> <TR> <TD><%=oRs.Fields("NumeroRecibo")%></TD><TD><%=oRs.Fields("Ejercicio")%></TD><TD><%=oRs.Fields("TipoRecibo")%></TD><TD><%=oRs.Fields("Pendinete")%></TD><TD><A HREF="shop.asp?ac=sacar&prod=<%=clave%>">Quitar
</A></TD><%
end if
Next

if carrito.Count > 0 then
oRs.Close
set oRs=nothing
end if
%>
</tr></TABLE><%
' Pinto los enlaces
' si no he llamado desde PasarPorCaja
if accion<>"fin" then
%> <center> <A HREF=shop.asp>Seguir mirando</A> / <A HREF=shop.asp?ac=fin>Pasar
por caja</A> </center><%
end if
End Sub
'----------------------------------------------------------
'METER RECIBO
'---------------------------------------------------------
Sub MeterArticulo (NumeroRecibo)
' Añade el recibo NumeroRecibo al carrito de la compra
carrito.Add NumeroRecibo,1
Response.Write("Se ha añadido el artículo al carrito<br>")
End Sub

El problema ahora es q cuando pincho en un enlace para pagar, no muestra
el carrito, sólo el nombre de los campos, no lo entiendo, podreis ayufdarme??
Gracias

Santos Pairazam?
27 de Mayo del 2003
Prueba si esto te trae datos.
For Each clave in carrito
response.write cstr(clave)
next
o en todo caso :
if not (oRs.eof or oRs.bof) then
'tu còdigo Normal
End if
Si tienes el Sql a la mano.
Imprime el Resultado de la Consulta :
response.write SQL
de esta manera veràs si trae datos o no.

Hasta Pronto
Lima - Perù

TOM
27 de Mayo del 2003
HE hecho lo q dijiste, de las dos formas y no me saca ningún dato. Ahora sí q estoy mareado

Santos Pairazam?
27 de Mayo del 2003
Si es asi parece que estas perdiendo los datos en algùn Momento, tienes que realizar un seguimiento minucioso para dar con el Problema.
Te sugiero que uses el response.write

Hasta pronto