Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/01/2015, 12:35
raul_loz
 
Fecha de Ingreso: diciembre-2014
Ubicación: Guadalupe
Mensajes: 7
Antigüedad: 9 años, 4 meses
Puntos: 0
De acuerdo Respuesta: Error en Procedimiento Almacenado

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Tienes varios errores en el segundo SP:
1) Es un solo INTO seguido de todas las variables. Eso lo puedes ver en el manual de referencia (recomiendo que lo leas, está en la web oficial).
2) Todos los parámetros que pones son de entrada y ninguno de salida, por lo que ese SP no te devolverá datos en ellos.
Esto también se explica claramente en el manual de referencia...

Además:
3) La consulta que pusiste puede devolver más de un registro, pero por parámetro sólo puede devolver valores simples. MySQL no tiene datos de tipo CURSOR, o ARRAY, como otros DBMS, por lo que el SP disparará un error si hay más de un registro.
Código MySQL:
Ver original
  1. CREATE PROCEDURE SP_FERSA_ConsultaFormularioCotizador
  2. (
  3.  OUT p_Producto VARCHAR(100),
  4.  OUT p_tipo VARCHAR(100),
  5.  OUT p_Frente VARCHAR(100),
  6.  OUT p_Profundidad VARCHAR(10),
  7.  OUT p_Altura VARCHAR(100),
  8.  OUT p_Piso VARCHAR(100),
  9.  OUT p_Puertas VARCHAR(100),
  10.  OUT p_Modulos VARCHAR(10)
  11. )
  12.  
  13.     SELECT  
  14.         c.Producto,
  15.         c.Sub_Producto,
  16.         c.Frente,
  17.         c.Profundidad,
  18.         c.Altura,
  19.         c.Piso,
  20.         c.Puertas
  21.     INTO P_PRODUCTO, P_TIPO, P_FRENTE, P_PROFUNDIDAD, P_ALTURA, P_PISO, P_PUERTAS
  22.     FROM producto p INNER JOIN sub_producto sp ON p.id_prod = sp.id_prod
  23.         INNER JOIN combinaciones c ON sp.id_prod = c.ID_SUB_PROD;
  24.   END;

Yo recomendaría no usar parametros y obtener la tabla resultado que devuelve el SP directamente como tal, pero no sé en qué contexto la estás usando.

Lo que estoy haciendo es un SP para conectarlo mediante ASP.NET a una pagina de un cotizador en donde cuando se escoja un producto vaya filtrando los sub_productos que tiene , es por eso que necesito los parametros pero noto que me esta marcando unos errores el SP que me escribiste me esta marcando errores de punto y coma por lo que no deja crear el SP.
Código MySQL:
Ver original
  1. CREATE PROCEDURE SP_ConsultaCotizador
  2. (
  3.  OUT p_Producto VARCHAR(100),
  4.  OUT p_tipo VARCHAR(100),
  5.  OUT p_Frente VARCHAR(100),
  6.  OUT p_Profundidad VARCHAR(10),
  7.  OUT p_Altura VARCHAR(100),
  8.  OUT p_Piso VARCHAR(100),
  9.  OUT p_Puertas VARCHAR(100),
  10.  OUT p_Modulos VARCHAR(10)
  11. )
  12.  
  13.     SELECT  
  14.         c.Producto,
  15.         c.Sub_Producto,
  16.         c.Frente,
  17.         c.Profundidad,
  18.         c.Altura,
  19.         c.Piso,
  20.         c.Puertas
  21.     INTO p_Producto, p_tipo, p_Frente, p_Profundidad, p_Altura, p_Piso, p_Puertas
  22.     FROM producto p INNER JOIN sub_producto sp ON p.id_prod = sp.id_prod
  23.         INNER JOIN combinaciones c ON sp.id_prod = c.id_prod; -- AL CERRAR CON ; ES DONDE ME MARCA EL ERROR DE PUNTO Y COMA
  24.   END; -- AQUI TAMBIEN AL CERRAR ME MARCA ERROR DE PUNTO Y COMA

Última edición por gnzsoloyo; 07/01/2015 a las 12:43