Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2013, 11:24
Avatar de Moutinho10
Moutinho10
 
Fecha de Ingreso: marzo-2013
Mensajes: 9
Antigüedad: 11 años, 1 mes
Puntos: 0
Exclamación Error 1054 dbforge

Hola , bueno soy nuevo aquí y quería contar mi situación aver si me podeís ayudar, el caso esque en el dbforge tengo realizada dos procedimientos para mi base de datos
este es uno :
Código MySQL:
Ver original
  1. CREATE DEFINER = 'root'@'localhost'
  2. PROCEDURE carritocompra.AniadirAlCarrito(IN p_codigocarrito INT, IN p_codigoproducto INT, IN p_unidades INT, IN p_precio DECIMAL (10,2), OUT p_error VARCHAR(255))
  3. DECLARE v_articulo INT;
  4. SELECT codigoarticulo INTO v_articulo FROM articuloscarrito WHERE codigocarrito=p_codigocarrito AND codigoarticulo=p_codigoproducto;
  5.  
  6. IF NOT EXISTS (SELECT codigo
  7.                FROM carrito
  8.                WHERE codigo=p_codigocarrito)THEN
  9. SET p_error = 2;
  10.   IF p_codigoproducto=v_articulo THEN
  11.   UPDATE articuloscarrito SET cantidad=p_unidades WHERE articuloscarrito.codigoarticulo=p_codigoproducto AND articuloscarrito.codigocarrito=p_codigocarrito;
  12.   SET p_error=1;
  13.   else
  14.   INSERT INTO articuloscarrito (codigocarrito,codigoarticulo,cantidad) VALUES (p_codigocarrito,p_codigoproducto,p_unidades);
  15.   set p_error= 0;
  16.   end if;
  17.  
  18. select p_error ;
y este el 2 con el que lo llamo
Código MySQL:
Ver original
  1. CREATE DEFINER = 'root'@'localhost'
  2. PROCEDURE carritocompra.mostraraniadircarrito(IN p_codigocarrito INT, IN p_codigoproducto INT, IN p_unidades INT, IN p_precio DECIMAL(10,5))
  3. Declare v_error INT ;
  4.  
  5. CALL AniadirAlCarrito(p_codigocarrito,p_codigoproducto,p_unidades,p_precio,v_error);
  6.  
  7. If v_error = 0 THEN
  8.   select "El articulo ha sido introducido";
  9.   if v_error = 1 THEN
  10.   select "el articulo ha sido actualizado en el carrito";
  11.   else
  12.      SELECT "no se ha realizado la operacion porque el carrito no existe en la BD";
  13.   end if;

Bueno la cosa esta en que cuando intento llamar
Código MySQL:
Ver original
  1. mysql> call mostraraniadircarrito(1,1,100,100);
  2. ERROR 1054 (42S22): Unknown column 'codigocarrito' in 'where clause'
me da ese error, lo que me mosquea esque si ese mismo ejercicio lo llevo a una base de datos nueva "carritocompra" m es decir copio los dos tal cual y los creo en la base de datos nueva vacia, que solo contiene los datos de las tablas, si me funcionan,no me da error, ademas otra cosa que me desconcierta esque cuando me traigo esos mismos procedimientos de un compañero realizado un poco diferente pero que funcionan, si me los traigo y los sustituyo por los mismo en mi base de datos me sigue dando el mismo error, aunque los de mis compañero funciona, pero al llevarlo a mi base de datos ya no, sale el mismo ERROR 1054 , mi docente me ha dicho que el ha conseguido arreglar ese error en su dbforge con mi base de datos, me ha dicho que ha conseguido cambiar algo en mi base de datos que es una copia de la mia y ya le funciona, ademas me ha dicho que no se tarda mas de 1 minuto en arreglarlo, entonces no es problema de sintaxis, y si el campo codigo carrito existe en la tabla donde estoy buscando, entonces nose que puede ser, aver si vosotros podeis ayudarme , a alguien que tarbaje con ese programa tb y le haya pasado lo mismo que estoy desesperado.

Muchas Gracias por su tiempo

Última edición por gnzsoloyo; 11/03/2013 a las 11:56 Razón: Código MySQL sin etiquetar.