
28/07/2008, 10:24
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 179
Antigüedad: 17 años, 4 meses Puntos: 0 | |
Respuesta: problemas con do while Yo me lo imaginaba y llevo toda la tarde buscando como usar correctamente el while hasta que me a dejado de dar problemas pero ahora me da otro error pero no en el codigo sino en un try de mi codigo por que no entra y va del tiron al cacth, os pongo el codigo entero y haber si me podeis ayudar por que me lanza ese error por que estado probando varias cosas y nada:
codigo::
var cadenaConexion = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" +Server.MapPath("basedatos/bd.mdb");
var sql,result= Server.CreateObject("ADODB.Recordset");
try{
conexion= Server.CreateObject("ADODB.Connection");//inicializamos la variable de conexion
conexion.open(cadenaConexion);//establecemos la comunicacion con la BD
}
catch(e){//tratamiento de posible errores
Response.Write ("<h2>Error1:</h2>");
Response.Write ("<b>" + e.description + "</b>");
Response.End();
}
try{
var nick = Session("nick");
sql="SELECT * FROM articulos WHERE nick= '"+nick+"'";
conexion.BeginTrans();
result.Open(sql, conexion);
if(result.eof)
{
Response.Write("Usted no ha realizado ningun pedido en Animalandia.com")
Response.Write("<h4 align=center ><button onclick='history.back()'>Volver</button></h4>");
Response.End();
}
else
{
While(result.EOF == false)
var tipo = result("tipo");
%><input type="text" name="txtense" id="txtense" size="25%" readonly value="<%Response.write(tipo)%>"><%
var cantidad=result("cantidad");%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(cantidad)%>">
<%var descripcion=result("descripcion");%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(descripcion)%>">
<%var precio = result("precio");%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(precio)%>">
<%
result.movenext();
Wend
}
} catch(e){//posible fallo en la BD
Response.Write ("<h2 align=center >Error2:</h2>");
Response.Write ("<b>" +e.description+ "</b>");
Response.Write("<h4 align=center ><button onclick='history.back()'>Volver</button></h4>");
Response.End();
}
%>
El error que me da muestra Se esperaba un objeto y es por que entra en el cacth que muestro en negrita he mirado que la sentencia sql este bien y me pilla bien la variable nick asi que no se por que no ejecuta.
Otra cosa que me he dado cuenta es que el fallo probablemente venga del while pues si no lo pongo me muestra el 1º resultado de la base de datos, es decir si pongo el siguiente codigo no tengo problemas y la pagina funciona perfecto pero claro si es un historial debe aparecer toda compra realizada por quien sea:
codigo que funciona bien:
else
{
var tipo = result("tipo");
%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(tipo)%>">
<%var cantidad=result("cantidad");%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(cantidad)%>">
<%var descripcion=result("descripcion");%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(descripcion)%>">
<%var precio = result("precio");%>
<input type="text" name="txtense" id="txtense" size="25%" readonly value="<%response.write(precio)%>">
<% }
muestro donde tengo el problema seguramente y el resto es el anterior cambiando el else. |