04/01/2010, 13:25
|
| | | Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años Puntos: 4 | |
procedimiento no puede devolver un conjunto de resultados en el contexto dado Hola nuevamente, tengo el siguiente procedimiento almacenado:
Código:
CREATE DEFINER=`root`@`localhost` PROCEDURE `PA_Venta`(xIdcliente INT, xIdempleados varchar(3),
xIdproducto varchar(6), xcantidad Numeric(18,2),
xPrecioUnit Numeric (18,2),xId_color int)
BEGIN
declare idVenta int; /* idventas tomara el ultimo valor auto*/
Insert into ventas(fecha,Idcliente,Idempleados,Idproducto,cantidad,PrecioUnit,total,Id_color)
values(current_date(),xIdcliente,xIdempleados,xIdproducto,xcantidad,xPrecioUnit,xcantidad*xPrecioUnit,xId_color);
/* Ahora restando el stock*/
update producto set stock = (stock - xcantidad)
where xIdProducto = Idproducto;
/* Mostrando el Resumen de venta */
set idVenta = (SELECT LAST_INSERT_ID()
FROM ventas limit 1); /*capturando el ultimo valor de
autoincrement*/
Select v.Idventas, v.Fecha, c.nombre,e.nombre, p.Descripcion,v.Cantidad,
v.PrecioUnit,v.total,co.Descripcion
from ventas v,empleados e, clientes c, producto p, color co
where (v.Idventas = idVenta) AND (c.Idcliente = v.Idcliente)
and (v.Idempleados = e.Idempleados) and (p.Idproducto = v.Idproducto)
and (v.Id_color = co.Id_color );
END
El cual es llamado desde php en la siguiente forma:
Código:
$resultado = mysql_query("call PA_Venta('$xIdcliente','$xIdempleados', '$xIdproducto', '$xcantidad', '$xPrecioUnit', '$xId_color')") or die(mysql_error());
if ($row = mysql_fetch_array($resultado)){
/* var_dump($row, $resultado);*/
echo "<table border = '1'>\n";
echo "<tr><td>Numero de Venta</td><td>Fecha</td><td>Cliente</td><td>Empleado</td><td>Producto</td><td>Cantidad</td><td>Precio
Unitario</td><td>Total</td><td>Color</td></tr> \n";
do {
echo "<tr><td>".$row['Idventas']."</td><td>".$row['fecha']."</td><td>".$row[2]."</td><td>".$row[3]."</td><td>".$row[4]."
</td><td>".$row[5]."</td><td>".$row[6]."</td><td>".$row[7]."</td><td>".$row[8]."</td></tr>
\n";
} while ($row = mysql_fetch_array($resultado)); /* aca padeci como nunca por no darme cuenta que es mysql_fetch_array.*/
echo "</table>\n";
} else { echo "¡No se ha encontrado ningún registro!";}
y me vota el siguiente error:
PROCEDURE tienda.PA_Venta can't return a result set in the given context
Ahora, el error al parecer es en el procedimiento almacenado por ese motivo lo puse aca el post.
La verdad no se porque no me funcion, hize la mismo consulta desde php en el mismo php y funciona. |