Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/09/2010, 03:18
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayuda con Procedimiento Almacenado.

Yo la dejaría así:
Código MySQL:
Ver original
  1. DELIMITER//
  2. DROP PROCEDURE `SumaCantEntraItem`//
  3. CREATE PROCEDURE `SumaCantEntraItem`(IN codi varchar(20),IN vcantidad int)
  4.      UPDATE items
  5.      SET cantidad = cantidad +  vcantidad
  6.      WHERE codigo = codi AND cantidad >=0;
  7. END //
  8. DELIMITER;
El resto del código es superfluo.
El problema central es que estabas usando el mismo nombre (cantidad) para la variable de entrada que para el campo, y eso hace que MySQL confunda cuál debe usar. Como el campo tiene mayor jerarquía lógica, entonces lo que hace es usar el propio valor del campo para ponerselo... al mismo campo.

No uses los mismos nombres en las variables que en los objetos de la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)