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

Que puede estar mal en este código?

Estas en el tema de Que puede estar mal en este código? en el foro de ASP Clásico en Foros del Web. Os explico, en la sentencias que aparece " mensajeError = "Pedido CAB : " & numPedido & " - Valor i : " & i ...
  #1 (permalink)  
Antiguo 03/07/2008, 14:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 18 años, 7 meses
Puntos: 0
Que puede estar mal en este código?

Os explico,

en la sentencias que aparece " mensajeError = "Pedido CAB : " & numPedido & " - Valor i : " & i & " - Error : " & err.number" son unos logs que he puesto que se graba en la base de datos para ver que ocurre, el fallo es que aveces funciona bien la llamada de la sentencia : storedProcedure = "call SP_PEDIDOS_I ('" & numPedido & "'," & cliente & ",'" & obs & "'," & vendedor & ",'" & importe & "');", alguien sabe si hay algo raro en el codigo.



<!-- #include virtual ="periodicos/adovbs.inc" -->

<%
strConnection="Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=periodicos; User=root;Password=admin;Option=3;"
cliente = request.querystring("cliente")
numPedido = request.querystring("numPedido")
obs = replace(request.querystring("obs"),"'","''")
importe = request.querystring("importe")
vendedor = request.querystring("vendedor")
'vendedor = "aa"

set con=Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.Recordset")
con.Open strConnection

storedProcedure = "call SP_PEDIDOS_I ('" & numPedido & "'," & cliente & ",'" & obs & "'," & vendedor & ",'" & importe & "');"


set conLog=Server.CreateObject("ADODB.Connection")
set rstLog = Server.CreateObject("ADODB.Recordset")
conLog.Open strConnection
spLog = "call SP_LOG_I ('Pedido Cabecera',""" & storedProcedure & """)"
rstLog.activeconnection = conLog
rstLog.open = spLog

rst.activeconnection = con
rst.open = storedProcedure
'con.Execute (storedProcedure)
nombre = ""
i=0

mensajeError = "Pedido CAB : " & numPedido & " - Valor i : " & i & " - Error : " & err.number
spLog = "call SP_LOG_I ('Pedido Cabecera',""" & mensajeError & """)"
rstLog.activeconnection = conLog
rstLog.open = spLog


While not rst.EOF
nombre = rst.Fields(0)
rst.moveNext
i = i + 1
wend

mensajeError = "Pedido CAB : " & numPedido & " - Valor i : " & i & " - Error : " & err.number
spLog = "call SP_LOG_I ('Pedido Cabecera',""" & mensajeError & """)"
rstLog.activeconnection = conLog
rstLog.open = spLog

response.write i

rst.close
con.close
%>
  #2 (permalink)  
Antiguo 03/07/2008, 16:00
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Que puede estar mal en este código?

Cita:
Iniciado por infolan Ver Mensaje
...el fallo es que aveces funciona bien la llamada de la sentencia : storedProcedure = "call SP_PEDIDOS_I ('" & numPedido & "'," & cliente & ",'" & obs & "'," & vendedor & ",'" & importe & "');"...
te manda algún error?
si es así: cual es el error?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 03/07/2008, 23:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Que puede estar mal en este código?

Lo raro es que no mando ningún error, la operativa en pantalla es como si la hiciera correctamente.

Está parte la tengo puesto en una llamada AJAX, ya que se trata de un formulario que se va cargando dinamicamente, es decir, tengo un botón que cuando lo pulsas, crea varias textos en una linea de pedidos, y estas lineas pueden ser "n" veces.

Pues esta operación lo hace bien a veces, según que casos, por eso tuve que poner logs en la base de datos porque con el AJAX no puedo recuperar el error del error.number
  #4 (permalink)  
Antiguo 04/07/2008, 00:17
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Que puede estar mal en este código?

de hecho si se puede recuperar el error en AJAX.....

hay 2 opciones....

Primera

mira un ejemplo de AJAX, esta funcion es la que ya recibe la respuesta, pero debemos fijarnos en esto....
Cita:
function handleHttpResponse() {
if (http.readyState == 4) {
//si se encontro y todo bien, prosigue
if (http.status == 200) {
//evaluamos si existe o no error en la pagina
if (http.responseText.indexOf('invalid') == -1){
// alert(http.responseText);
results = http.responseText.split(",");
document.getElementById(results[0]).innerHTML = results[1];
enProceso = false;}
}
//existio error, por lo tanto, despliego el error en un alert
//asi el usuario sabra que LINEA DE ERROR DA

else
{
alert(http.responseText);
enProceso = false;
}

}
}
si pones tu codigo ajax, veremos como acomodarlo para que te despliegue el error

segunda opcion, la mas facil
utilizando el Firefox, agregas este el complemento FIREBUG
y te mostrara las peticiones AJAX, las que sean correctas, tambien como las incorrectas

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 04/07/2008, 00:36
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Que puede estar mal en este código?

luego a la tarde cuando llegue a casa os pongo el codigo de las dos paginas, gracias por la ayuda
  #6 (permalink)  
Antiguo 04/07/2008, 00:41
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Que puede estar mal en este código?

recuerda primero verificar lo que se te menciona, antes de poner el codigo
ya que codigo sin linea de error
es muy dificil de enfocar

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 04/07/2008, 09:38
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Que puede estar mal en este código?

La página que contiene llamada AJAX es :
<html>
<head>
<title>Untitled</title>
<script language="JavaScript1.2" type="text/javascript">
var number ="100";
var arrayTotal = new Array();
var codigoCliente = '<%= request.QueryString("codigo") %>'
var numeroPedido = '<%= newPedido %>'
var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

var oDetallePed = new Object();

function savePedido()
{
if (document.getElementById("vendedor").value != 0)
{
insertarPedido();
}
else
{
alert("Es obligatorio insertar el nombre del vendedor.");
}
}

function insertPedidoDet()
{
var lengthText = document.forms.elements.length;
var query = "CALL SP_PEDIDOS_DETALLE_I(";
var numPedido = escape(document.getElementById("numPedido").value) ;
var aDetallePed = new Array();
var cadena = "";
for (i=0; i<lengthText; i++)
{
if (document.forms.elements[i].type=="text")
{
pat = /codSeleccion/;
var codSel = document.forms.elements[i].name;
var codSelVal = document.forms.elements[i].value;
if (pat.test(codSel) && (codSelVal!=""))
{
var textCodArticuloParent = "codArticulo[" + codSelVal + "]";
var textFechaParent = "textFecha[" + codSelVal + "]";
var textCantidadParent = "textCantidad[" + codSelVal + "]";
var textCodArticuloTipoParent = "codArticuloTipo[" + codSelVal + "]";
var textPrecioParent = "textPrecio[" + codSelVal + "]";

consulta = query + "'" + numPedido + "'," + document.getElementById(textCodArticuloParent).val ue + ",'" +
document.getElementById(textFechaParent).value + "'," + document.getElementById(textCantidadParent).value + "," +
document.getElementById(textCodArticuloTipoParent) .value + "," + document.getElementById(textPrecioParent).value + ");";

cadena = cadena + consulta;
}
}
}

if (!enProceso && http)
{
var url = "insertPedidoDet.asp?cadena=" + cadena;
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
enProceso = true;
http.send(null);

}
}

function handleHttpResponse() {
if (http.readyState == 4) {
if (http.status == 200) {
if (http.responseText.indexOf('invalid') == -1) {
// Armamos un array, usando la coma para separar elementos
results = http.responseText.split("-");
if (results[0]==1)
{
//alert("Se puede insertar la parte de detalles");
enProceso = false;
insertPedidoDet();
}
enProceso = false;
}
else
{
alert(http.responseText);
enProceso = false;
}
}
}
}


function insertarPedido()
{
if (!enProceso && http)
{
var cliente = escape(document.getElementById("hidCliente").value );
var numPedido = escape(document.getElementById("numPedido").value) ;
var obs = escape(document.getElementById("textObs").value);
var vendedor = escape(document.getElementById("vendedor").value);
var importe = escape(document.getElementById("total").value);

var url = "insertPedido.asp?cliente=" + cliente + "&numPedido=" + numPedido + "&obs=" + obs + "&vendedor=" + vendedor + "&importe=" + importe;
//alert(url);
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
enProceso = true;
http.send(null);
alert("El pedido se ha realizado correctamente.");
window.location.href="per_marco_principal.asp";
}
}

function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) { xmlhttp = false; }
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) { xmlhttp = false; }
}
return xmlhttp;
}


</script>
</head>
<%
tipoOperacion = request.QueryString("tipo")
codigo = request.QueryString("codigo")
response.write("Tipo : " & tipoOperacion & " - Codigo : " & codigo)

txtNombre = ""
txtApellidos = ""
txtCodigoPostal = ""
txtPoblacion = ""
txtProvincia = ""
clientePreferente = ""

set con=Server.CreateObject("ADODB.Connection")
set rsPedido = CreateObject("ADODB.Recordset")
con.Open strConnection
storedProcedurePedido = "CALL SP_NEW_PEDIDO_L();"
rsPedido.activeconnection = con
rsPedido.open = storedProcedurePedido
con.Execute (storedProcedurePedido)
newPedido = rsPedido("newPedido")
set oConn=Server.CreateObject("ADODB.Connection")
set rs = CreateObject("ADODB.Recordset")
oConn.Open strConnection

if (codigo <> "") then
storedProcedure = "call SP_CLIENTES_L (" & codigo & ");"
rs.activeconnection = oConn
rs.open = storedProcedure
oConn.Execute (storedProcedure)
While not rs.EOF
txtNombre = rs("cli_nombre")
txtApellidos = rs("cli_apellidos")
txtCodigoPostal = rs("cli_codigo_postal")
txtPoblacion = rs("cli_poblacion")
txtProvincia = rs("cli_provincia")
clientePreferente = rs("cli_preferente")
RS.moveNext
Wend
end if

color = "#FC0C0C"
if clientePreferente <> 0 then
color = "#0AD13D"
end if
%>


<body onload="javascript:format('<%= newPedido %>',6);">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><h2>Pantalla pedidos</h2></td>
</tr>
</table>
<form action="per_pedidos.asp" name="forms">
<input type="Hidden" name="hidCliente" id="hidCliente" value="<%= request.QueryString("codigo") %>">
<!-- DATOS DEL CLIENTE SELECCIONADO -->
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr>
<td>
<fieldset>
<legend>Información del cliente</legend>
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr>
<td width="65%">
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr><td class="literalNegrita" colspan="2"><br></td></tr>
<tr>
<td class="literalNegrita" width="20%">Nombre : </td>
<td class="literal"><%= txtNombre %></td>
</tr>
<tr>
<td class="literalNegrita">Apellidos : </td>
<td class="literal"><%= txtApellidos %></td>
</tr>
<tr>
<td class="literalNegrita">Codigo Postal : </td>
<td class="literal"><%= txtCodigoPostal %></td>
</tr>
<tr>
<td class="literalNegrita">Población : </td>
<td class="literal"><%= txtPoblacion %></td>
</tr>
<tr>
<td class="literalNegrita">Provincia : </td>
<td class="literal"><%= txtProvincia %></td>
</tr>
<tr>
<td class="literalNegrita">Preferente : </td>
<td class="literal" bgcolor="<%= color %>">&nbsp;</td>
</tr>
<tr><td class="literalNegrita" colspan="2"><br></td></tr>
</table>
</td>
<td>
<table border="0" cellpadding="0" cellspacing="0" width="100%" align="center">
<tr><td class="literalNegrita">Observaciones :</td></tr>
<tr>
<td>
<textarea rows="5" cols="50" id="textObs" name="textObs" class="texto2"></textarea>
</td>
</tr>
</table>
</td>
</tr>
</table>

</fieldset>
</td>
</tr>
</table>
<br>
<!-- DATOS DEL PEDIDO SELECCIONADO -->
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr>
<td>
<fieldset>
<legend>Pedido Realizado&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" size="10" maxlength="10" name="total" id="total" value="0" class="texto2">
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="#">Históricos</a>
&nbsp;&nbsp;&nbsp;&nbsp;
<%
if clientePreferente <> 0 then
%>
<img src="../images/img_mantenimientos/guardar.gif" name="guardar" width="28" height="28" alt="" onclick="javascript:savePedido();" style="cursor:hand;">
<img src="../images/img_mantenimientos/imprimir.gif" name="imprimir" width="28" height="28" alt="">
<%
end if
%>
&nbsp;&nbsp;&nbsp;&nbsp;
Número Pedido : <input type="text" size="11" maxlength="11" name="numPedido" id="numPedido" class="texto2" disabled>
<!--
<img src="../images/img_mantenimientos/Arrow-Up.png" width="28" height="28"
alt="Imprimir Arriba" border="0" onclick="javascript:openPDF('per_pdf.asp?codigoCli ente=<%= codigo %>&posicion=top&total=');">
<img src="../images/img_mantenimientos/Arrow-Down.png" width="28" height="28"
alt="Imprimir Abajo" border="0" onclick="javascript:openPDF('per_pdf.asp?codigoCli ente=<%= codigo %>&posicion=button&total=');">
-->
<select name="vendedor" id="vendedor" class="texto2">
<option value="0">Vendedor</option>
<option value="2">Alberto</option>
</select>
</legend>
<table border="0" cellpadding="0" cellspacing="0" width="90%" align="center">
<tr><td class="literalNegrita"><br></td></tr>
<tr>
<td colspan="6">
<table id="table1" style="border:1px;cellspacing:0px;cellpadding:0px; " border="0" width="90%">
<tbody></tbody>
</table>
</td>
</tr>
<tr>
<td colspan="5">
<a href="javascript:addTextBox();">Añadir Articulos</a>
<img src="transparent.gif" width="10%" border="0" height="1">
<a href="javascript:eliminarAll();">Eliminar todos</a>
</td>
</tr>
</table
</fieldset>
</td>
</tr>
</table>
</form>
</body>
</html>
  #8 (permalink)  
Antiguo 04/07/2008, 09:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 405
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Que puede estar mal en este código?

La página de insertar es :
edido")
obs = replace(request.querystring("obs"),"'","''")
importe = request.querystring("importe")
vendedor = request.querystring("vendedor")
'vendedor = "aa"

set con=Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.Recordset")
con.Open strConnection

storedProcedure = "call SP_PEDIDOS_I ('" & numPedido & "'," & cliente & ",'" & obs & "'," & vendedor & ",'" & importe & "');"


set conLog=Server.CreateObject("ADODB.Connection")
set rstLog = Server.CreateObject("ADODB.Recordset")
conLog.Open strConnection
spLog = "call SP_LOG_I ('Pedido Cabecera',""" & storedProcedure & """)"
rstLog.activeconnection = conLog
rstLog.open = spLog

rst.Open storedProcedure, con, 1, 2
'rst.activeconnection = con
'rst.open = storedProcedure
nombre = ""
i=0

mensajeError = "Pedido CAB : " & numPedido & " - Valor i : " & i & " - Error : " & err.number
spLog = "call SP_LOG_I ('Pedido Cabecera',""" & mensajeError & """)"
rstLog.activeconnection = conLog
rstLog.open = spLog


While not rst.EOF
nombre = rst.Fields(0)
rst.moveNext
i = i + 1
wend

mensajeError = "Pedido CAB : " & numPedido & " - Valor i : " & i & " - Error : " & err.number
spLog = "call SP_LOG_I ('Pedido Cabecera',""" & mensajeError & """)"
rstLog.activeconnection = conLog
rstLog.open = spLog

response.write i

rst.close
con.close
%>

HE PROBADO TODO LO COMENTADO Y NO VEO NADA
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 20:04.