Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en stored

Estas en el tema de Error en stored en el foro de Mysql en Foros del Web. Hola! Bueno, la verdad que no encuentro cual es el problema con este stored, lo revise y rehice muchas veces pero no se que pasa... ...
  #1 (permalink)  
Antiguo 10/10/2008, 08:55
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 9 meses
Puntos: 0
Error en stored

Hola! Bueno, la verdad que no encuentro cual es el problema con este stored, lo revise y rehice muchas veces pero no se que pasa... alguien sabe que tiene mal??

MUCHAS GRACIAS!

Cita:
DELIMITER $$;

DROP PROCEDURE IF EXISTS `sistema`.`NuevoProducto`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `NuevoProducto`(IDProd int, Cod varchar, Descri varchar, Foto varchar, Rub int, SubRub int, FechaA date, IDUsu int, Empre int, Sucur int)
BEGIN
INSERT INTO Productos(IdProducto, Codigo, Descripcion, FotoPath, Rubro, SubRubro, FechaAlta, UserALTA, Empresa, Sucursal) Values (IDProd, Cod, Descri, Foto, Rub, SubRub, FechaA, IDUsu, Empre, Sucur);
END$$

DELIMITER ;$$
(0 row(s) affected)
(0 ms taken)

Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' Descri varchar, Foto varchar, Rub int, SubRub int, FechaA date, IDUsu int, Empr' at line 1
(0 ms taken)
  #2 (permalink)  
Antiguo 10/10/2008, 10:04
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error en stored

Por lo pronto, no estás indicando si las variables del prototipo son de entrada (IN), entrada-salida (INOUT) o de salida(OUT).
Un store procedure, a diferencia de una función, puede tener las variables en cualquiera de las tres formas. las store function no, sólo son de entrada, por eso no se indica.

El código quedaría mas o menos:
Código sql:
Ver original
  1. DELIMITER $$;
  2.  
  3. DROP PROCEDURE IF EXISTS `sistema`.`NuevoProducto`$$
  4.  
  5. CREATE PROCEDURE `NuevoProducto`(IN IDProd INT, IN Cod VARCHAR, IN Descri VARCHAR, IN Foto VARCHAR, IN Rub INT, IN SubRub INT, IN FechaA DATE, IN IDUsu INT, IN Empre INT, IN Sucur INT)
  6. BEGIN
  7. INSERT INTO Productos(IdProducto, Codigo, Descripcion, FotoPath, Rubro, SubRubro, FechaAlta, UserALTA, Empresa, Sucursal)
  8. VALUES(IDProd, Cod, Descri, Foto, Rub, SubRub, FechaA, IDUsu, Empre, Sucur);
  9. END$$
  10.  
  11. DELIMITER ;$$
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/10/2008, 10:08
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Error en stored

Te agradesco, pero me sigue tirando el mismo error :(
  #4 (permalink)  
Antiguo 10/10/2008, 10:26
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error en stored

Perdón, me distraje un poco. El problema básico es que no estás poniendo la dimensión de los VARCHAR.
El código quedaría mas o menos:
Código sql:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS`NuevoProducto`$$
  4.  
  5. CREATE PROCEDURE `NuevoProducto`(
  6. IN IDProd INT,
  7. IN Cod VARCHAR(20),
  8. IN Descri VARCHAR(20),
  9. IN Foto VARCHAR(20),
  10. IN Rub INT,
  11. IN SubRub INT,
  12. IN FechaA DATE,
  13. IN IDUsu INT,
  14. IN Empre INT,
  15. IN Sucur INT)
  16. BEGIN
  17. INSERT INTO Productos(IdProducto, Codigo, Descripcion, FotoPath, Rubro, SubRubro, FechaAlta, UserALTA, Empresa, Sucursal)
  18. VALUES(IDProd, Cod, Descri, Foto, Rub, SubRub, FechaA, IDUsu, Empre, Sucur);
  19. END$$
  20.  
  21. DELIMITER ;

Nota: El DELIMITER no requiere cierre de sentencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 10/10/2008, 10:31
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Error en stored

Muchas gracias, hubo un inconveniente menor con el DELIMITER pero ya esta!!

Cita:
DELIMITER $$;

DROP PROCEDURE IF EXISTS`NuevoProducto`$$

CREATE PROCEDURE `NuevoProducto`(
IN IDProd int,
IN Cod varchar(20),
IN Descri varchar(20),
IN Foto varchar(20),
IN Rub int,
IN SubRub int,
IN FechaA date,
IN IDUsu int,
IN Empre int,
IN Sucur int)
BEGIN
INSERT INTO Productos(IdProducto, Codigo, Descripcion, FotoPath, Rubro, SubRubro, FechaAlta, UserALTA, Empresa, Sucursal)
VALUES(IDProd, Cod, Descri, Foto, Rub, SubRub, FechaA, IDUsu, Empre, Sucur);
END$$

DELIMITER ;$$
Salu2!!
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 01:36.