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

Error Por Desbordamiento

Estas en el tema de Error Por Desbordamiento en el foro de ASP Clásico en Foros del Web. Hola, hasta esta misma tarde este código para pintar una gráfica me iba perfecto, pero de pronto me ha empezado a dar el siguiente error: ...
  #1 (permalink)  
Antiguo 12/02/2007, 14:08
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Error Por Desbordamiento

Hola, hasta esta misma tarde este código para pintar una gráfica me iba perfecto, pero de pronto me ha empezado a dar el siguiente error:

Error de Microsoft VBScript en tiempo de ejecución error '800a0006'

Desbordamiento

/.../pracFinal/resultadoencuesta.asp, línea 42


¿Alguien puede ayudarme? Estoy muy perdido

Código:
<%
sub resultadoencuesta3()

voto = Request.Form("mismo")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("BD/bd.mdb")
Set Rs = Server.CreateObject("ADODB.RecordSet")
sSQL = "SELECT * FROM encuesta3"
Rs.Open sSQL, oConn
If Rs.EOF then
oConn.Execute "INSERT INTO encuesta3 (dato1,dato2,dato3,dato4,dato5) VALUES (0,0,0,0,0)"
Rs.Requery
End If
If voto = "0" then
sSQL="UPDATE encuesta3 SET Dato1 = " & Rs("Dato1")+1
oConn.Execute sSQL
Rs.Requery
ElseIf voto = "1" then
sSQL="UPDATE encuesta3 SET Dato2 = " & Rs("Dato2")+1
oConn.Execute sSQL
Rs.Requery
ElseIf voto = "2" then
sSQL = "UPDATE encuesta3 SET Dato3 = " & Rs("Dato3")+1
oConn.Execute sSQL
Rs.Requery
ElseIf voto = "3" then
oConn.Execute "UPDATE encuesta3 SET Dato4 = " & Rs("Dato4")+1
Rs.Requery
ElseIf voto = "4" then
oConn.Execute "UPDATE encuesta3 SET Dato5 = " & Rs("Dato5")+1
Rs.Requery
End If

total =Rs("Dato1")+Rs("Dato2")+Rs("Dato3")+Rs("Dato4")+R s("Dato5")
%>
<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
<TABLE ALIGN="left" WIDTH="600" BORDER="0" CELLPADDING="0" CELLSPACING="1">
<tr><td width="600" align="center" bgcolor='#0099CC'><font color="#FFFFFF" size="2"><strong>¿Ha realizado alguna compra en alguna tienda MITIC?</strong></font></td></tr>
<tr><td>
<TABLE ALIGN="left" WIDTH="595" BORDER="0" CELLPADDING="0" CELLSPACING="1">
<TR>
<TD width="220"><font size="2">No, no los conocía hasta ahora</font></td><td align="left" width="380"><IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=(Rs("Dato1")*100)/total%>%"></TD></TR>
<TR>
<TD><font size="2">No, aunque los conocía nunca he comprado nada</font></td><td align="left"><IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=Rs("Dato2")*100/total%>%"></TD>
</TR>
<TR>
<TD><font size="2"> Sí, pero en menos de cinco ocasiones</font></td><td align="left"><IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=Rs("Dato3")*100/total%>%"></TD></TR>
<TR>
<TD><font size="2">Sí, en más de cinco ocasiones pero nunca en la tienda virtual</font></td><td align="left"><IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=Rs("Dato4")*100/total%>%"></TD></TR><TR>

<TD><font size="2">Sí, en más de cinco ocasiones, incluso en la tienda virtual</font></td><td align="left"><IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=Rs("Dato5")*100/total%>%"></TD></TR>
</TABLE>
</td></tr>
<tr>
<td><br><div align="center"><a href="default.asp?opcion=6">Volver a la encuesta</a></div></td>
</tr></table></font>
<%
Rs.Close
Set RS = Nothing
oConn.Close
Set oConn = Nothing
%>

</td></tr></table>
</body>
</html>
<%
end sub
%>

PD: El error me lo da en la primera línea de dibujo de la gráfica
<TD width="220"><font size="2">No, no los conocía hasta ahora</font></td><td align="left" width="380"><IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=(Rs("Dato1")*100)/total%>%"></TD></TR>
  #2 (permalink)  
Antiguo 12/02/2007, 14:15
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Error Por Desbordamiento

matematicamente efectua esta operacion con los valores que deveria de llevar y decime que valor te da

(Dato1*100)/total

si fuera 0
(0*100) = 0 / 2

digo

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 12/02/2007, 14:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Error Por Desbordamiento

Cita:
Iniciado por JuanRAPerez Ver Mensaje
matematicamente efectua esta operacion con los valores que deveria de llevar y decime que valor te da

(Dato1*100)/total

si fuera 0
(0*100) = 0 / 2

digo

suerte
Hola, de todas formas no habría problema puesto que obtenemos valor 0, no?
  #4 (permalink)  
Antiguo 12/02/2007, 16:30
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Error Por Desbordamiento

Por si alguien puede ayudarme, me acabo de dar cuenta de que el error me lo produce la divisón sea cual sea ésta. Si calculo el width del gráfico como 100/25, por ejemplo, me da este error.
  #5 (permalink)  
Antiguo 12/02/2007, 17:44
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Re: Error Por Desbordamiento

jaja teneis razon
perdona aver si te ayudo un poco

se me subio el azucar
jajajaja

vamos a empezar de 0

proba asi

<TD width="220">
<font size="2">No, no los conocía hasta ahora</font>
</td>
<td align="left" width="380">
<%
'calculando largo de la grafica
total = cint(total)
TotalVotos1 = cint(Rs("Dato1"))
valor1 = TotalVotos1 * 100
Graficar1 = valor1 / total
response.write Graficar1
response.end
%>
<IMG HEIGHT="25" SRC="imagenes/pic_gris.gif" BORDER="1" WIDTH="<%=Graficar1%"></TD></TR>

el response.end te imprimira el valor de la operacion matematica

suerte

editado.
response.end terminara la ejecucion del codigo asp y te mostrara el response.write (el valor que tendria qeu graficar)
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 13/02/2007, 07:53
 
Fecha de Ingreso: febrero-2007
Mensajes: 7
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Error Por Desbordamiento

Al final era tan simple como que el servidor no soportaba hacer decimales. Cambiél el tipo de división por una división entera (\) y funcionó a la perfección.

Gracias de todas formas.
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 13:45.